The solution we are looking for:
What we don't necessarily need:
A quick comparison of available solutions and the characteristics is available on the website of Flyway, one of the candidates.
There are two solutions that at first glance match all our requirements. Flyway and Liquibase. There is however one very distinct difference in the database support. Flyway has very nice plain old sql migrations. Liquibase specifies database refactorings in xml. What liquibase can do is translate the xml definitions to database specific code. That gives us a database agnostic way to define our database schema.
If you don't need to deploy the same deployment package to several database types, you might want to pick Flyway for it's simplicity. We picked Liquibase for it's extensive database support. What's your pick?