Output Formats in the Liquibase AI Changelog Generator
Last updated: May 15, 2026
The AI Changelog Generator is currently in early access, and we're actively seeking customer feedback to help shape its development. If you would like to learn more about this feature, please contact us here. The Liquibase AI Changelog Generator generates changelog output in two formats: the default XML and Formatted SQL. This page explains what each format produces, when to use each one, and how to switch between them.
Overview
When you describe a database change to the AI Changelog Generator in natural language, it generates a Liquibase changelog entry. The output format determines how that entry appears and how Liquibase processes it.
XML | Formatted SQL | |
Default format | Yes | No — must be enabled |
Database-agnostic | Yes | No — generates dialect-specific SQL |
Rollback generation | Auto-generated by Liquibase at runtime for most operations | Explicitly written into the file by the MCP server |
Works with include/includeAll | Yes | Yes |
Best use case | Teams using Liquibase-native workflows across multiple databases | Teams with SQL-first workflows who prefer readable, explicit SQL files |
XML Output
XML is the default output format. The AI Changelog Generator generates a standard Liquibase XML changeset using Liquibase change types such as createTable, addColumn, and createIndex.
When to use XML
Your team uses Liquibase across multiple database platforms
You want Liquibase to manage rollback logic automatically at runtime
You are working with changelogs that use include or includeAll
You need the full range of Liquibase change type attributes
Example XML output
Natural language prompt: "Create a user table with an auto-incrementing ID, a username up to 50 characters that must be unique, and a non-null email."
Formatted SQL Output
Formatted SQL output produces a plain .sql file using Liquibase's formatted SQL changelog syntax. The SQL is generated for a specific target database, making the output immediately readable and executable by anyone familiar with SQL.
When to use Formatted SQL
Your team prefers working directly with SQL files
You want rollback statements written explicitly into the changelog file
You are targeting a specific database and want dialect-appropriate SQL
You are introducing Liquibase to a team that already has a SQL-based workflow
Example Formatted SQL output
Same natural language prompt, Formatted SQL output for PostgreSQL: