def build_down_commands
      rollbacks = rollback_versions.map{ |v| RollbackCommand.new(v) }
      missing = missing_versions_before(rollbacks.last.version).map{ |v| ApplyCommand.new(v) }
      rollbacks + missing
    end
def build_down_commands
      rollbacks = rollback_versions.map{ |v| RollbackCommand.new(v) }
      missing = missing_versions_before(rollbacks.last.version).map{ |v| ApplyCommand.new(v) }
      rollbacks + missing
    end
rollback all versions applied past the target
 and apply missing versions to get to target

 0 | a (target) (not applied) | b | c | d (current) | e