No, liquibase does not support a data diff, only a full data dump.
I have seen http://ljnelson.github.io/liquiunit/ which may help you with dbunit integration, but using dbunit or any other data load tool to manage your data will run into schema incompatibilities like you suggest.
What I would suggest doing is to have "test data load" changeSets that are added into your changeLog to build up your test data as you go along.
For example:
<changeSet id="1" author="x">
<createTable name="a"../>
</changeSet>
<changeSet id="2" author="x">
<createTable name="b"../>
</changeSet>
<changeSet id="3" author="x" context="test">
<sqlFile path="data-dump.1.sql">
</changeSet>
<changeSet id="4" author="x">
<renameColumn oldColumnName="s" newColumnName="t"../>
</changeSet>
<changeSet id="5" author="x" context="test">
<sqlFile path="data-dump.2.sql">
</changeSet>
You see it creates an initial structure and then loads a round of QA's data into the database with the database structure as it is after changeset 2. Notice the use of contexts so the test data isn't loaded into production.
After the test data are more structure changes and then another round of additional QA data. The new data doesn't re-create data-dump.1.sql but is in addition to it. Since data-dump.1.sql is always ran before changeSet 4, it doesn't have to be updated as the schema changes.
The big problem, though, is how to extract your test data as QA is building it up. If they are adding it through your application, the easiest approach may be to use something like p6spy to automatically collect all the SQL executed in your application and then just copy it into your data-dump.X.sql files.