According to the docs on contexts:
Using Contexts for Multi-DBMS Change Logs
You can use contexts to control which change sets run on which databases, but the better option is to use the built-in “dbms” tag on the changeSet tag.
Via DatabaseList.definitionMatches the dbms tag used to support using the "!" operator similar to contexts. When running on hsqldb the following should contain two change sets for id 1 and id 3. Instead, as of CORE-3180, the first change set is not included for hsqldb.