...
Why? the databaseChangelog table does not have a primary key. It takes a combination of the id, author and filename as being unique.
However, we have just moved condensing the changeSets means moving some of them to a different file, thus creating creating a new entry in the databaseChangelog table, as opposed to updating the existing one.
...
This is because when trying to rename a column, the old column name no longer exists.
To work around this, I added a "preCondition" to any impacted changesetchangeSet, to check that a column, index etc exists first, before we apply the step.