If I use tags in a change log and then I execute it into updateDatabase ant task to generate sql file (not to update directly the database), I think the tags do not have any effect in the generated sql file.
We would have to consider the preconditions in the sql file to provide a good tool.
Maybe, in two ways:
a) Liquibase checks the preconditions in the moment of generating the sql file. If a precondition goes right, fails or gives a error, to act according to possibles values (halt,continue,mark_ran,warn) and to halt the generation of sql file, to skip the next changeSet or to write the statement in the sql file.
b) Liquibase writes each precondition tag into a sql procedure that represents the action of the precondition.