app release rollback - best practises ?

consider this simplified directory structure in some version control

      - java src
      - db src
            - changelogs21-30.xml
- release 1.0
      -java src
      -db src
            - changelogs1-10.xml
-release 2.0
      - java src
      - db src    
            - changelogs11-20.xml

lets say we want to rollback the system from 2.0 to 1.0
how does liquibase rollback suppose to be implemented ?  create a liquibase calls to rollback changes 11-20 ?

so if we have the build done by maven how does that suppose to look knowing what we need to rollback db from 2.0 to 1.0. ?
each rollback suppose to have a liquibase rollback call written specifically going to 2.0 to 1.0 ?
perhaps its better each release folder has complete changelog history ?

what are the best practices in general, dont think maven now, just in general when rolling back a system do I manually create liquibase rollback call by tag etc, or somehow liquibase rolls back everything automatically since it detects changelists applied in log table which are not in the release structure. yes, i’m new to liquibase.