Liquibase with DB2 on Z/os

I am a new user with liquibase and I am using it against DB2 via ant scripts. I can use the “generateChangeLog” task with my local db2 on windows. But when I use it against the remote db2 server on z/os, I got the following error:

liquibase.exception.DatabaseException: Error executing SQL SELECT IDENTITY FROM SYSCAT.COLUMNS WHERE TABSCHEMA = ‘someShema’ AND TABNAME = ‘tableName’ AND COLNAME = ‘colName’ AND HIDDEN != ‘S’

I think it is due to the syscat.columns view is different between windows db2 and z/os db2, is liquibase supports DB2 on z/os? And if it is, where can I specify the database system is on z/os instead of windows? (by using ant, or java api? or other means?)

Thanks a lot for your help!


I haven’t tested liquibase on z/os, and do not know the differences.  Do you know what the SQL should be for z/os? 


DB2 structure on Z/os is very different with DB2 on Linux/Unix/Windows. And here is the link for it

drill down into “DB2 V9.1 for z/OS”, then “DB2 reference information” and then “DB2 catalog tables”.

I created to track z/os db2 support.  Thanks for the reference


any news on that issue ?

Nothing yet, unfortunately.



I forked the codebase and added the support for DB2 z/OS.

Please see:

It at least works for me with DB2 z/OS 9.7 and 10.1.
Please note I only tested reverse engineering so far.
So no DDL is implemented.

Will there be a chance to add a extended and  reviewed version of that code to the main line?
Anny comments are welcome.


Thanks! I’ll take a look.


Warning: I know very little about DB2 on Z/os so some of these questions are basic, bear with me.

There is an existing extension for DB2 on iSeries at That is different than your z/os support, correct? The z/os support should be moved to an extension rather than directly off the liquibase code, that way it can more easily be updated and managed independently of liquibase releases. I can help with moving it into an extension is you would like.

You have both a DB2 LUW and a DB2ZOS Database object. What are the differences between them and what are the two types for?