Liquibase runs "update databasechangeloglock set locked=1" when it first starts and "update databasechangeloglock set locked=0" after it has applied any unrun changeSets. If you kill you application while liquibase is checking for changeSets you can be left in a situation where locked doesn't get set back to 0 and it will keep waiting for the lock indefinitely. We have to commit the transaction after setting locked=1 because each of the changeSets runs in a transaction and when java is killed there is no way for us to recover locked back to 0.
There is a "releaseLocks" command you can use to get yourself out of a locked state. Or you can just set locked=0 yourself however you want.
Nathan