How do I manage rolling back changes made to "rerunnable" (runOnChange=true) changelogs that contain stored logic?

Then you can use this option:

--liquibase formatted sql

--changeset jim:v1 
CREATE OR REPLACE my_view AS
SELECT name
FROM my_table;

--rollback empty

--changeset bob:v2
CREATE OR REPLACE my_view AS
SELECT name, date
FROM my_table;

--rollback CREATE OR REPLACE my_view AS
--rollback SELECT name
--rollback FROM my_table;