Sorry if I’m contributing this in a wrong place.
On a page http://www.liquibase.org/manual/create_stored_procedure it is said that Sybase doesn’t have problems with statement in change set. In fact it does. Sybase doesn’t support CREATE OR REPLACE PROCEDURE statement. Sproc needs to be dropped first and then created. Due to JDBC nature of Liquibase both statements cannot go together in one DB update instruction.
This is kind of a bugger, because every statement needs to have it’s own execution. There is a workaround for above, which can look like this:
if exists(select * from sysobjects where name = 'your-stored-proc-X' and type = 'P')
drop procedure your-stored-proc-X
Stored Proc code with proper XML escaping.
Sproc GRANT statement
Sproc PERMISSION statement
It’s not the cleanest solution but works.
In our case, because we have way too many old stored procs (to maintain and potentially convert) we went with calling isql from Maven mojo solution for every Sproc file (isql supports multiple statements and GO keyword).
Because of above complications I’d suggest changing comment for Sybase at http://www.liquibase.org/manual/create_stored_procedure .