Affects Version/s: 2.0.1
Fix Version/s: 3.0.0
DerbyDatabase's close() method smartly attempts to reconnect to Derby database with ;shutdown=true to shut it down.
However, under Maven, the driver is generally provided as a dependency and therefore only shows up in the artifact classloader (MavenUtils.getArtifactClassloader). This causes: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver and the .lck files are kept around (making it inaccessible to anyone else).
On shutdown, Derby throws a SQLException with SQL state XJ015. To handle this, Liquibase catches Exception and silently swallows it.
I'm not quite sure the best way to get a fresh connection to Derby to ask it to shutdown, but I do recommend splitting the catches up such that the XJ015 is okay, but other exceptions are not: