In #2609310: Add highwater/track_changes examples to beer migrations, adding track_changes to the beer_term migration does not work as expected (changed source data does not get reimported). I've recently used track_changes with XML and JSON feeds successfully, so I was a bit perplexed, but I figured it out - with a SQL source, if possible (and ignore_map is not set), the source query is joined directly with the map query, so any previously-imported rows are not retrieved from the database. For track_changes to work, all source rows must be retrieved and hashed to check for changes, so the track_changes setting needs to disable the map join.
Easy to fix, just needs a test...