Release Notes
Tip: If you are still not using Liquibase Hub, we have released an easy way to start – see Getting Started with Liquibase Hub for more details. See also Liquibase Hub Release Notes.
Liquibase 4.10 release
Full Changelog: https://github.com/liquibase/liquibase/compare/v4.9.1...v4.10.0
Please report any issues to https://github.com/liquibase/liquibase/issues.
Breaking Change
Upgraded mssql driver to 10.2.0 by @nvoxland in https://github.com/liquibase/liquibase/pull/2790
End User Impact: The driver changed the encryption default from "false" to "true" between 8.x and 10.x. If you have a self-signed certificate in your database, you must do one of the following: add encrypt=false
; add trustServerCertificate=true
; or add the server certificate to the java trusted certificate list. For production systems, Liquibase recommends against using self-signed certificates without adding the server certificate to the Java keystore. For more information on installing the trusted certificate, see https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/manage-certificates?view=sql-server-ver15.
Security Updates
Upgraded postgresql from 42.3.2 to 42.3.4 to address [CVE-2022-26520](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-26520) by @dependabot in https://github.com/liquibase/liquibase/pull/2769
- Vulnerability introduced in org.postgresql:postgresql@42.3.2
- Fixed in org.postgresql:postgresql@42.3.3
JDBC Driver and Third-Party Library Updates
- Upgraded oracle driver to 21.5.0.0 by @nvoxland in https://github.com/liquibase/liquibase/pull/2791
- Upgraded jcc from 11.5.6.0 to 11.5.7.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2421
- Upgraded mssql driver to 10.2.0 by @nvoxland in https://github.com/liquibase/liquibase/pull/2790
- Upgraded h2 from 2.1.210 to 2.1.212 by @dependabot in https://github.com/liquibase/liquibase/pull/2740
- Upgraded sqlite-jdbc from 3.34.0 to 3.36.0.3 by @dependabot in https://github.com/liquibase/liquibase/pull/2412
- Upgraded jaybird from 4.0.3.java8 to 4.0.6.java8 by @dependabot in https://github.com/liquibase/liquibase/pull/2802
- Upgraded hsqldb from 2.4.0 to 2.5.2 by @nvoxland in https://github.com/liquibase/liquibase/pull/2797
- Updated information in "licenses" directory by @nvoxland in https://github.com/liquibase/liquibase/pull/2795
- Upgraded mariadb driver to 3.0.4 by @nvoxland in https://github.com/liquibase/liquibase/pull/2789
Enhancements
- Quality checks for Maven - `checks.run` and `checks.show` goals [DAT-9033] [DAT-9034]
- For more information, see Maven checks.show and Maven checks.run.
- Allow CompositeResourceAccessor to have a non-fixed size list of ResourceAccessor so that the list can be added to/removed from by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2650
- Correctly handle null class package names in the logging system by @nvoxland in https://github.com/liquibase/liquibase/pull/2763
- Handle URLs correctly in error conditions DAT-9882 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2709
- Validate formatted SQL changelog for invalid patterns DAT-7721 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2761
Fixes
- [PRO] Diff commands correctly recognizing triggers as changed/different in Postgresql10 [DAT-9559]
- Fix EnterpriseDB database recognition by @nvoxland in https://github.com/liquibase/liquibase/pull/2767
- Fix start failure with NullPointerException when Environment contains empty string Key (fix Issue 2631) by @feltonma91 in https://github.com/liquibase/liquibase/pull/2636
- Fix createTable on Mysql not preserving primary key information when remarks also defined on the column by @nvoxland in https://github.com/liquibase/liquibase/pull/2752
- Updated information in "licenses" directory by @nvoxland in https://github.com/liquibase/liquibase/pull/2795
New Contributors
- @kataggart made their first contribution in https://github.com/liquibase/liquibase/pull/2577
- @feltonma91 made their first contribution in https://github.com/liquibase/liquibase/pull/2636
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
- Contribute code
- Make doc updates
- Help by asking and answering questions
- Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!

[PR#2666] [nvoxland] Liquibase 4.9.1 release is a patch release that fixes the MANIFEST.MF
location in the liquibase.jar
file for tools that require the MANIFEST.MF
file to be the first entry in the jar archive. If the MANIFEST.MF
file is not the first entry, java.util.jar.JarInputStream#getManifest()
reading the MANIFEST.MF
file will not return the manifest information appropriately. The PR fixes issue #2648.
[Issue#2672] Addresses the remaining OSGi-related packaging problems to fully restore Liquibase support in OSGi environments.
Fixes
- [PR#2651] Fixed the issue with a malicious software alert for the Liquibase macOS Installer preventing from proceeding with the installation. [DAT-9524]
- [PR#2643] Fixed the handling of non-integer datatypes using a default value with a sequence in snapshot on PostgreSQL [DAT-8670]
- [PR#2691] Fixed invalid JSON in the
example-changelog.json
file [DAT-9893]
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong. To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Liquibase 4.9.0 Release
Liquibase 4.9.0 is now available on the Download Liquibase page.
This release includes the checks.run
and checks.show
Maven goals, quality checks JSON object, community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and other notable changes.
Notable Changes
Liquibase 4.9.0 introduces the following functionality:
- Quality checks for Maven –
checks.run
andchecks.show
goals [DAT-9033] [DAT-9034]
Note: For more information, see Maven checks.run and Maven checks.show.
- [PR#2558] [kavya-shastri] [Breaking Change] The change in the usage of the Liquibase global configuration for the
secureParsing
parameter to prevent the entity resolver from scanning the network for missing XSDs. If you reference an XSD other than one of Liquibase and have never stored them in yourclasspath
, Liquibase will no longer automatically download and use the XSD from the internet for security reasons. The default value forsecureParsing
istrue
, but you can set it tofalse
in any of the Liquibase configuration locations.Note: For more information, see Example Changelogs: XML Format.
- [PR#2529] [Krzysztof Sierszeń] [LB-1781] The
uniqueConstraintExists
precondition to check for the existence of unique constraints before running the update. You can check the constraint by constraint name or columns:
<preConditions>
<uniqueConstraintExists constraintName="uq_constraint_name" tableName="test_table"/>
</preConditions>
<preConditions>
<uniqueConstraintExists tableName="test_table" columnNames="first_name, last_name"/>
</preConditions>
- [PR#2339] [nvoxland] [Toukite] The support for running the Liquibase Servlet listener in application servers built on the Jakarta Servlet specification and not the Java Servlet specification. To use the new listener, specify the following tag:
<listener>
<listener-class>liquibase.integration.servlet.LiquibaseJakartaServletListener</listener-class>
</listener>
The PR fixes issue #2298.
- [PRO] Quality checks JSON object so that your application can easily parse through the Liquibase output [DAT-9094]
Note: For more information, see Quality Checks JSON Object.
Enhancements
- [PR#2434] [Balázs Dési] Added the Maven
validate
goal tomaven-liquibase-plugin
to provide access to the existing Liquibasevalidate
command and be available not only in CLI, but also in MavenNote: For more information, see Maven validate.
- Added the ability to use
sqlcmd
on an instance with multiple databases [DAT-9513]Note: For more information, see Using the SQLCMD integration and run-with attribute with Liquibase Pro and MSSQL Server.
- Added support for Liquibase, Spring Boot, and SQL Plus run with Kerberos [DAT-9409]
Note: For more information, see Using Liquibase and Spring Boot with SQL Plus and Kerberos Authentication.
- [PR#2561] [Wesley Willard] Added the
--schemas
argument to thesnapshot
command to be able to compare a multi-schema database to its snapshot [DAT-9433] - [PR#2606] [Wesley Willard] Added a best practice message for the
generate-changelog
command so that you can check if thesplitStatements
attribute works for your environment when generating formatted SQL changelogs [DAT-9327] - Added the
StripComments
attribute for theSQLUserDefinedPatternCheck
quality check to choose the code that theSQLUserDefinedPatternCheck
searches, including the option for the commented code. TheStripComments
attribute strips comments from SQL before searching for the string. The default value isN
(no). [DAT-9098] - [PR#2273] [Tsvi Zandany] Added the autocomplete option for quality checks commands running on macOS
Fixes
- [PR#2542] [nvoxland] Fixed the
--should-snapshot-data
CLI parameter to be preserved when the--data-output-directory
property is not specified in the command - [PR#2330] [Inane Mohammed] Fixed the issue with checking the
referenceSnapshot
parameter instead ofreferenceDatabase
for the potential null value - [PR#2521] [Steven Massaro] Added a label, context, and comment to the
example-changelog.sql
file that comes with the Liquibase installation package [DAT-9325] - [PR#2556] [nvoxland] Fixed the CockroachDB processes so that Liquibase checks the URL first rather than proceeding with SQL calls
- [PR#2569] [Clarence Dimitri CHARLES] Made
FormattedSqlChangeLogParser
to be reusable for extensions - [PR#2377] [devorgpl] Fixed the issue with updating statements when the
onlyUpdate
attribute isfalse
in theloadUpdateData
Change Type for HSQL - [PR#1908] [Emiliano Capoccia] Fixed the issue with retrieving the CockroachDB version. As part of the fix, Liquibase generates version-specific autoincrement SQL statements for CockroachDB identity columns:
SMALLSERIAL
,SERIAL
, andBIGSERIAL
for versions earlier than 21.2GENERATED BY DEFAULT AS IDENTITY
for version 21.2 or later
- [PR#2135] [PR#2133] [Saucistophe] [mkobylarz] Fixed the issue with the
endDelimiter
attribute not being respected during the Liquibase update. The fix forendDelimiter
does not break the handling of trailing comments in SQL statements. [LB-2186] - [PR#2573] [nvoxland] Fixed the quoting for the
MANIFEST.MF
file for correct versioning - [PR#2572] [Steven Massaro] Fixed the issue with generating changelogs for PostgreSQL columns that use
SET DEFAULT
[DAT-8779] - [PR#2589] [nvoxland] [Marcel Blonk] Fixed the MD5 checksums generated by older versions of Liquibase to be correctly updated in the DATABASECHANGELOG table when a more recent version of Liquibase executes against the database. The PR fixes issue #2580.
- [PR#2592] [nvoxland] Added support for the double precision type in MySQL. The PR fixes issue #2337.
- [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes issue #1774.
- [PR#2387] [Jenson3210] Fixed the handling of date and time in the
loadData
Change Type - [PR#2566] [nvoxland] Updated OpenCSV from 5.5.2 to 5.6
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
- Balázs Dési
- Inane Mohammed
- Clarence Dimitri CHARLES
- kavya-shastri
- Emiliano Capoccia
- Saucistophe
- mkobylarz
- Krzysztof Sierszeń
- Jenson3210
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

This release includes the init hub
subcommand, Liquibase Pro support for MSSQL Server sqlcmd
utility, community-contributed pull requests, and Liquibase Community and Liquibase Pro bug fixes.
Notable Changes
Liquibase 4.8.0 introduces the following functionality:
- The
init hub
subcommand that connects your local Liquibase activity to Liquibase Hub and sets up the Liquibase environment to use Liquibase Hub. [DAT-8769]
Note: For more information, see init hub and Getting Started with Liquibase Hub.
- [PRO] The
sqlcmd
utility support to process complex SQL for MSSQL Server. Liquibase provides theliquibase.sqlcmd.conf
file to pass arguments to your executor when running Liquibase Pro. [DAT-7447]
Note: For more information, see Using the SQLCMD integration and run-with attribute with Liquibase Pro and MSSQL Server.
- Changes to the behavior of the XML parser, which no longer allows referencing external DTD files for security reasons. If you use externally defined entities or any other potentially insecure XML feature in your changelogs, set
liquibase.secureParsing=false
. [PR#2384] [LB-2218]
Note: For more information about the ways to set the parameter, see Command Parameters.
- The upgrade of the
postgresql
(from42.2.12
to42.3.2
) andh2
(from2.0.206
to2.1.210
) drivers that Liquibase includes in the installation package. If you use those drivers and upgrade an existing Liquibase installation, remove the earlier versions of drivers from theLIQUIBASE_HOME/lib
directory.
Enhancements
- Implemented the
SimpleObjectConstructor
interface for DB2 on z/OS [DAT-8580] - Included the CLI instructions on how to use the properties file with a nonstandard name when running the
init project
subcommand [DAT-9041] - Improved the output message for
init start-h2
when the H2 database driver is specified, but there is no connection detected [DAT-8992] - Added validation errors for the
enableCheckConstraint
,disableCheckConstraint
,dropPackage
,dropPackageBody
Change Types [DAT-9017] - [PR#2367] [Mike Olivas] Added example rollback scripts to the
example-changelog.sql
file [LB-2220] - [PR#1648] [Daniel Gray] Improved the exception error message for the
customChange
node with noclass
attribute [LB-1144] - [PR#2222] [msimko81] Added the offline mode support for the
rollback-sql <tag>
operation [LB-2198] - [PR#2273] [Tsvi Zandany] Added the autocomplete quality checks commands for macOS
- [PR#2308] [Valentin Blistin] Added the
close
method for theClassLoaderResourceAccessor
class [LB-2205]
Fixes
- Fixed the
renameSequence
Change Type generating an uppercase SQL instead of lowercase and causing failures with case-sensitive databases [LB-1763] -
Fixed the
generate-changelog
anddiff
commands to show and generate a proper SQL with autoincrement for PostgreSQL [DAT-8779] - [PR#1320] [PR#2329] [Anatoly S] [Nathan Voxland] [Matteo Turra] Improved the UTF-8 character support in the
<sql>
tags [LB-562] - [PR#2139] [wziebicki] Improved the
UniqueConstraintSnapshotGenerator
class to add a table name to the Oracle database query so that the cache key can contain it, and the unique constraint can be read from cache [LB-2206] - [PR#2335] [erzsebet] Removed duplicated DATABASECHANGELOGLOCK SQL statements when running the
update-sql
command against a new database [LB-2208] - [PR#2505] [Nathan Voxland] [Dries Samyn] [erzsebet] Fixed the OSGI support with the
MANIFEST.MF
file in theliquibase-core-4.7.0.jar
file. The PR fixes PR#2361. - [PR#2366] [Steven Massaro] Made the
sp_rename
function to be lowercase when using MSSQL Server - [PR#2429] [Nathan Voxland] [Mirko Dostmann] [Alex Litovsky] Fixed the Ant and Apache Derby support. The PR fixes PR#2388 and PR#2391. [LB-2222]
- [PR#2397] [Nathan Voxland] [maxencelaurent] Implemented the logging of exceptions in the CDI integration. The PR fixes PR#2354. [LB-2223]
- [PR#2398] [Nathan Voxland] [urvanov-ru] Fixed the handling of schema snapshots with an underscore. The PR fixes PR#1604. [LB-2219]
- [PR#2340] [Nathan Voxland] [nickshoe] Enabled adding the
computed=true
columns with no type set in thecreateTable
Change Type. The PR fixes PR#2283. [LB-2215] - [PR#2372] [Nathan Voxland] [Henrik Sachse] [rburgst] Fixed the autoincrement syntax for H2 2.0 and later versions. The PR fixes PR#2362. [LB-2216]
- [PR#2549] [Nathan Voxland] [jenhae] Added validation errors for Liquibase and MSSQL Server if the
ordered
clause is specified in thecreateSequence
oralterSequence
Change Type. The PR fixes PR#2528. - [PR#2351] [Wesley Willard] [Joseph Cen] Fixed the handling of properties defined with different
dbms
filters. The PR fixes PR#2231. [LB-2217] - [PR#2122] [Tobias Liefke] Fixed the handling of the classpath for resources. The PR fixes PR#2121.
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

This patch release includes community-contributed pull requests, Liquibase Community bug fixes, and Liquibase Pro bug fixes.
Here is a closer look at what we improved in the latest release.
Known Issues
In version 4.7.0, users that have "edb" in connection URLs but are not using EnterpriseDB experienced errors that caused Liquibase to misinterpret the database dialect. This patch release resolves this issue along with several others.
Enhancements
- Added a new quality check –
RollbackRequired
. The check detects when a changeset does not have a rollback. [DAT-8871] - Enabled SQL parser for the
TableColumnLimit
check to work with formatted SQL changelogs [DAT-8531] - Implemented the
--auto-update
quality check parameter, which allows automatic backup and updating of theliquibase.check-settings.conf
file when new quality checks are available. [DAT-8752]- CLI:
--auto-update=[on|off]
- Liquibase properties file (
liquibase.properties
):liquibase.command.checks.show.autoUpdate: [on|off]
- [PRO] Environment variable:
LIQUIBASE_COMMAND_CHECKS_SHOW_AUTO_UPDATE=[ON|OFF]
- CLI:
Note: You can use the property not only with the show
command but any other quality checks command.
- [PR#1932] [Sergeev Viktor] Enabled changeset execution details to be shown in the output [LB-1886]
- [PR#2261] [Nathan Voxland] Marked the
liquibase-maven-plugin
logging configuration as deprecated [LB-2183] - [PR#2217] [Wesley Willard] [Marcono1234] Made lock granted time consistent with date executed time. Modified the
list-locks
output message. The PR fixes PR#2029. [LB-2126] - [PR#2293] [Nathan Voxland] [ThisOldDog] Added support for the additional information with "double" datatypes in MySQL. The PR fixes PR#2169. [LB-2195]
- [PR#2359] [AlexanderSashchenko] Added validation errors for the SQLite and DB2 on z/OS databases [DAT-8906]
- [PR#2348] [Steven Massaro] Updated the URLs in the CLI output to direct to the documentation website [DAT-8947]
- [PR#2333] [Wesley Willard] Enabled property parsing in
FormattedSqlChangeParser
[DAT-4793] - [PR#2356] [Steven Massaro] Added the output message which points to the
init project
command if you miss a supported argument in any command [DAT-8641]
Fixes
- [PR#2364] [Nathan Voxland] [M-Koers] Made
EnterpriseDBDatabase
detection less broad. The implementation ofEnterpriseDBDatabase
picked up database with "edb" in the URL instead of an actual EDB URL. The PR fixes PR#2363. [LB-2214] - Fixed quality checks with
OBJECT_TYPES=TABLE, COLUMN, SEQUENCE
specified in the sameObjectNameMustMatch
rule to find all matches [DAT-8716] - Fixed the
runWith=changeLogProperty
attribute not working in a formatted SQL changelog [DAT-4793] - [PR#2270] [Nathan Voxland] [Michael Kroll] Fixed the handling of the
cacheSize
attribute in thecreateSequence
andalterSequence
Change Types for MariaDB. The PR fixes PR#2147. [LB-2191] - [PR#2269] [Nathan Voxland] [Tsvi Zandany] Fixed the handling of the
tag-exists
command old syntax in Liquibase 4.4 and later (liquibase tag-exists myTag
) to correctly convert the pattern into new versions. The PR fixes PR#2109. [LB-2192] - [PR#2188] [Cullen Coyle] Added the
columnDataType
attribute for the generatedsetColumnRemarks
changesets to fix an error in MySQL [LB-2199] - [#932] [Matthias Wuttke] Added support for sequences in MaxDB [LB-41]
- [PR#2282] [AlexanderSashchenko] Fixed the drop column statement generator for DB2 on z/OS [DAT-8744]
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

Tip: Liquibase Hub introduces the Liquibase Hub DevOps Metrics functionality with four reports that provide the data to optimize your DevOps performance: Deployment Frequency, Change Migration Time, Change Failure Rate, Time to Fix Failing Changes.
This release includes community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and a new command to get started with Liquibase – the init
command.
Here is a closer look at what we improved in the latest release.
Notable Changes
Liquibase 4.7.0 introduces the init
command with the project
and start-h2
subcommands:
- The
init project
subcommand helps to set configuration files for using Liquibase or, if you already use Liquibase, create new project files with minimal input. [DAT-8640] - The
init start-h2
subcommand helps to start the included in-memory H2 database. The subcommand needs to be run in a new command line or terminal window. [DAT-8945]
Note: For more information and examples of using init
project, see init project.
Additionally, we have updated the Liquibase Getting Started tutorials and sample changelog files in the installation package. From now on, you can use sample SQL, XML, JSON, and YAML changelog files with the corresponding changesets. [LB-2177] [LB-2174]
Note: Check Liquibase Getting Started to see more details.
Enhancements
- [PRO] Improved the output of the
rollback-one-update
command [DAT-7590] - [PR#2244] [Tsvi Zandany] Enabled the use of the
jdbc:edb
URL for Liquibase to recognize EnterpriseDB - [PR#2225] [Nathan Voxland] [Konstantin] Enabled the use of lowercase
sys.synonyms
objects for thegenerate-changelog
anddiff-changelog
commands in Liquibase and SQL Server. The PR fixes PR#2044. - Added DB2 on z/OS database type and Java classes for Liquibase [DAT-8575]
- Upgraded H2 to the later version – 2.0.206
- [PR#2197] [Andrii Tytarchuk] Added optional SQL Plus properties to the
liquibase.sqlplus.conf
file and put the file in theexamples/sql
folder [DAT-7618]liquibase.sqlplus.args
liquibase.sqlplus.keep.temp.path
liquibase.sqlplus.keep.temp.name
- [PR#2215] [Nathan Voxland] Improved MySQL
loadData
performance
Fixes
- Fixed the
generate-changelog
wrong dependency order: theaddPrimaryKey
Change Type appeared before its base table in PostgreSQL [DAT-8256] - Fixed the quality checks settings file to be created using both relative and absolute paths [DAT-8275]
- Fixed quality checks reporting only the first failure for a changeset to report all failures in outputs [DAT-8630]
- [PR#2066] [smainz] Fixed the
loadData
Change Type to recognize CSV files when loading data with the path that contains a dot character ('.
') - [PR#2071] [Nicolas Humblot] [Philipp] Fixed the
addNotNullConstraint
Change Type causing the "Data too long" error message. The PR fixes PR#1054. - [PR#2073] [smainz] Fixed the
relativeToChangelogFile
attribute forloadData
,createProcedure
, andcreateView
Change Types - [PR#2228] [Nathan Voxland] Updated the logic of the foreign key names that are not always unique
- [PR#2081] [Jakub Herkel] Fixed OSGI support (manifest and class loading)
- [PR#2192] [Andrii Tytarchuk] Fixed
COLUMN_SIZE
for the PostgreSQLNUMERIC[]
datatype
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

This release includes community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and a new quality checks functionality.
Here is a closer look at what we improved in the latest release.
Notable Changes
Liquibase 4.6.2 introduces the multiple objects quality check that allows you to define and check the naming pattern for multiple types of objects rather than one type of object. For example, you do not want to have a dash in the table, column, and sequence names. With the multiple objects check, you can specify a pattern to check for dashes and choose tables, columns, and sequences as the objects to check. In version 4.6.2, the check is available for:
- Table
- Column
- Sequence
Note: For more information, see Multiple Objects Quality Check [DAT-8444]

Liquibase 4.6.2 includes the liquibase.sql.log-level
configuration option to control the level at which SQL is logged. The default value is FINE
.
You can run the --sql-log-level
parameter with the --log-level <level>
parameter in the CLI:
liquibase --sql-log-level <FINE|INFO|SEVERE|WARNING|OFF> --log-level=<FINE|INFO|SEVERE|WARNING|OFF>
--log-file=log.txt update --changelog-file=<changelog>
You can also set the parameter as follows:

liquibase_libs
directory When you run Liquibase in the CLI, the executables generate a classpath with the .jar
files from the LIQUIBASE_HOME
and LIQUIBASE_HOME/lib
directories. Liquibase 4.6.2 adds the ability to load an additional directory of liquibase_libs
in the current working directory to the classpath. With the liquibase_libs
directory located in the /lib
directory, projects can have separate extensions, drivers, and versions specific to a project [PR#2015] [mcred]
Enhancements
- [PRO] Added the ability to configure the
DDL_LOCK_TIMEOUT
parameter for Oracle without SQL Plus and define the connection timeout. You can configureDDL_LOCK_TIMEOUT
as follows: liquibase.ddlLockTimeout: <value>
in the Liquibase properties file--ddl-lock-timeout=<value>
as a CLI global parameterLIQUIBASE_DDL_LOCK_TIMEOUT=<int>
as an environment variable [DAT-7649]
- Improved the output of the
SqlUserDefinedPatternCheck
quality check copy [DAT-8492] - [PR#1817] [stalbrecht] Added the
MSSQLDatabase
specific error evaluation when creating DATABASECHANGELOGLOCK table - [PR#2180] [nvoxland] [eldadko] Added support for MySQL function indexes. The PR fixes PR#1626.
- [PR#928] [CORE-931] [RG9] Added support for the
NOT NULL
constraint with an initial default value in theaddColumn
Change Type
Fixes
- [PR#2173] [wwillard7800] [deci260] Fixed the issue with handling multi-column indexes during the JSON snapshot. The PR fixes PR#1260.
- [PR#1793] [janjicandjelka8] Fixed the handling of the
remarks
attribute in a primary key column tag for MariaDB - [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes PR#1774.
- [PR#1970] [nvoxland] Fixed the handling of the
addColumn
Change Type in SQLite - [PR#1995] [szandany] Fixed the
generate-changelog
command to generate theNUMERIC[]
data type for PostgreSQL correctly - [PR#1990] [JayWelborn] Fixed the SQL generated by the
alterSequence
Change Type to be compatible with the Oracle, PostgreSQL, MariaDB, and MSSQL databases - [PR#2020] [nvoxland] [dewa-actico] Fixed the handling of nested changelog preconditions. The PR fixes PR#1624.
- Fixed the naming of the checks settings file shown as null if the file was corrupted [DAT-8553]
- [PR#2021] [nvoxland] [zamani84] Fixed the issue with Liquibase escaping the backslash in values stored in objects. The PR fixes PR#1598.
- [PR#2083] [jamey-clari] Enabled the update operations to continue if the DATABASECHANGELOGLOCK table already exists, which helps to serialize all processes following schema creation.
- [PR#2167] [nvoxland] [obovsunivskyii] Fixed the
--verbose
flag used in theunexpected-changesets
command. The PR fixes PR#1987. - [PR#2168] [nvoxland] [gilles-gosuin] Fixed the parsing logic for
YAMLChangelogParser
andchangeLogId
in a Map. The PR fixes PR#1988. - [PR#2102] [prakashseervi] Implemented the handling of the
GENERATED ALWAYS AS
clause while creating a table for PostgreSQL - [PR#2029] [Marcono1234] Fixed the
LOCKGRANTED
column to include time zone information in the DATABASECHANGELOGLOCK table - [PR#2059] [wardvijf] Fixed the support for custom
DB2Database
implementations. The PR fixes PR#2058. - [PR#2171] [logantracyo] Fixed typos in the
ColumnConfig.java
documentation - [PR#2189] [nvoxland] Fixed the classpath to include files with the
relativeToChangelog=true
parameter for Spring Boot - [PR#2216] [tkalmar] Fixed the log message for PostgreSQL versions
- [PRO] Fixed the
snapshot
command failing against CockroachDB with the Liquibase Pro license key applied [DAT-8253] - Fixed the dependency order for a changelog file with the
addPrimaryKey
Change Type generated by thegenerate-changelog
command for PostgreSQL [DAT-8256] - [PRO] Fixed the following environment variables
LIQUIBASE_COMMAND_CHECKS_CONFIGURE_CHECKS_SETTINGS_FILE
,LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SETTINGS_FILE
, andLIQUIBASE_COMMAND_CHECKS_SHOW_CHECKS_SETTINGS_FILE
to be detected when running the quality checks commands [DAT-8546] - Fixed the default value of the
strict
parameter. The default value isfalse
. You can set thestrict
parameter as follows:liquibase.strict=false|true
in the Liquibase properties file--strict=false|true
as a CLI parameterLIQUBIASE_STRICT=false|true
as an environment variable [DAT-8547]
- Fixed quality checks reporting only the first failure in a changeset to report all failures found [DAT-8583]
- Fixed the Liquibase Cassandra extension failing when username and password are enabled [LB-2115]
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
- zamani84
- dewa-actico
- gilles-gosuin
- obovsunivskyii
- cypressious
- christf
- eldadko
- RG9
- janjicandjelka8
- JayWelborn
- Marcono1234
- prakashseervi
- stalbrecht
- logantracyo
- tkalmar
- deci260
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

Note: Liquibase 4.6.0 release has the wrong version of the Liquibase Pro XSD
file. Liquibase 4.6.1 release is a patch release that fixes the issue.
Liquibase 4.6.0 Release
This release includes many community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes.
Here is a closer look at what we improved in the latest release.
Notable Changes
Starting with version 4.6.0, the Windows and Mac/Linux Liquibase installers and the .tar.gz
and .zip
installation files include the most common JDBC drivers in the installation package:
- DB2
- Firebird
- H2
- HSQLDB
- PostgreSQL
- MariaDB
- MSSQL
- Oracle
- SQLite
To use the available drivers, see the Adding and Updating Liquibase Drivers documentation. Also, check the page for the cases when you need different drivers. [PR#2031] [DAT-7438]
Note: Since Liquibase 4.6.0 provides driver jar files, the size of the installation package is bigger than the size of the installation package in earlier versions.
Liquibase Pro Changes
Quality checks have configurable severity and exit codes [DAT-8171]
Tip: For more information, see the Using Quality Checks in Automation: Severity and Exit Code documentation.
Quality checks include the
bulk-set
command [DAT-8289]New quality checks:
- Static check: Warn when a table truncation is detected [DAT-7933]
- Dynamic check: Warn when granting specific privileges [DAT-7972]
- Static check: Warn when the
GRANT WITH ADMIN OPTION
statement is detected [DAT-7955] - Static check: Warn when the
GRANT WITH GRANT OPTION
statement is detected [DAT-7995]
Tip: For more information, see the Configure Quality Checks documentation.
The
liquibase.checks-settings.conf
file is unencoded in version 4.6.0 and later versions for easier inspection that allows you to resolve a merge conflict in source control. Liquibase backs up encoded files in the working directory, and you can still use previous versions by specifying the--checks-settings-file
parameter in the CLI, as an environment variable, or as a property in the Liquibase properties file. [DAT-8473]
Tip: For more information, see the bulk-set documentation.
If you use Liquibase Hub, check the Liquibase Hub DevOps Metrics documentation to learn more about DevOps metrics that provide the data to optimize your DevOps performance.
Enhancements
- [PR#1975] [nvoxland] Changed the XSD default
errorOnMissingOrEmpty
attribute totrue
for theincludeAll
attribute in the XML changelog file. The PR fixes PR#1960. - [PR#1993] [siudeks] Added support for deferrable primary keys in the
createTable
Change Type. The PR fixes PR#1597. - [PR#1986] [alexey-ivanov-official] [parthdesai21google] Added support for the
constraintName
attribute in thedropNotNullConstraint
attribute. Updated theaddNotNullConstraint
rollback logic to pass the constraint name to the generateddropNotNullConstraint
change. The PR fixes PR#1492 and PR#1942. - [PR#2114] [nvoxland] Improved code and added tests in the
liquibase.util
package - [PR#1679] [thomseno] Changed the
datetime
type todatetime2
for thetimestamp
type on SQL Server. - [PR#2144] [matejsp] Changed the default encoding to
UTF-8
. Added a new globalliquibase.fileEncoding
setting, which you can set as--file-encoding=ASCII
in the CLI,liquibase.fileEncoding: ASCII
in the Liquibase properties file (liquibase.properties
), andLIQUIBASE_FILE_ENCODING=ASCII
as an environment variable. The PR fixes PR#1445. - [PRO] Added a message to warn Liquibase Pro users when they have noncompliant Liquibase environment variables if the
strict
attribute is set totrue
[DAT-6946]
Fixes
- [PRO] Fixed the issue with Liquibase 4.4.0 and later versions to prompt if the Liquibase Pro license key is expired or invalid. [DAT-7862]
- [PRO] Fixed Liquibase Pro SQL Plus changesets failures with the Kerberos setup [DAT-8102]
- [PRO] Fixed the
snapshot
command using for CockroachDB with Liquibase Pro license key [DAT-8253] - Fixed an issue with running quality checks on Windows when using a configuration file created on Linux/macOS [DAT-8298]
- Fixed the
ChangesetCommentCheck
check to handle a lack of comments in thetagDatabase
Change Type [DAT-8313] - Fixed the default severity for the existing
liquibase.checks-settings.conf
files [DAT-8328] - Fixed the
customize
andcopy
commands to handle directories with spaces [DAT-8389] - Fixed the
schemas
andincludeSchema
attributes for thegenerate-changelog
command in Liquibase 4.4 and later versions [DAT-8133] - Fixed the quality checks customization issue when using Git Bash [DAT-8392]
- Fixed the message for the quality checks severity customization [DAT-8479]
- Fixed the quality checks halting execution when the checks settings file contains entries for rules which do not exist in the system. Liquibase skips unknown checks and continues the execution. [DAT-8507]
- [PR#1407] [pirocraft] Fixed the issue with Liquibase inserting a wrong default datetime value into MySQL. The PR fixes PR#1395.
- [PR#1415] [Alex1OPS] Fixed the
insert
Change Type with thevalueSequenceNext
andvalueSequenceCurrent
attributes to use the schema specified on a statement level of a changeset. The PR fixes PR#1304. - [PR#1931] [nvoxland] Fixed the issue with Liquibase throwing a null pointer exception in the CLI if the
LicenseService
interface cannot be loaded because of the missingjaxb
dependencies - [PR#2001] [haster] Fixed the
UniqueConstraintSnapshotGenerator
class switching to a bulk query after four unique constraints. The PR fixes PR#1996. - [PR#1973] [doakd] Fixed the issue with Liquibase formatted SQL changesets that are skipped if there is a space in the
--changeset
line. The PR fixes PR#1919. - [PR#104] [nvoxland] Fixed the
drop-all
command failing in the PostgreSQL database when the Liquibase-Cassandra extension is in theliquibase/lib
directory. The PR fixes PR#47. - [PR#2006] [kdenis4] Fixed Liquibase not reading the
liquibaseSchemaName
andliquibaseCatalogName
configuration settings. The PR fixes PR#2000. - [PR#1465] [danielthegray] Fixed the issue with Liquibase incorrectly inserting a long CLOB value in the database. Added integration tests.
- [PR#1974] [gjvoosten] Fixed the issue with Liquibase not handling case-sensitive primary key names in the
dropPrimaryKey
Change Type for PostgreSQL. The PR fixes PR#1933. - [PR#1941] [meisenla] [ckulenkampff] Fixed the
sqlFile
Change Type to handle theencoding
attribute. The PR fixes PR#1760.
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:
To keep contributing:
- Contribute code
- Make documentation updates
- Help by asking and answering questions
- Set up a chat with the Product team
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

This release includes community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and support for Working with Quality Checks.
Quality checks allow you to run checks against SQL, XML, JSON, and YAML changelogs for conditions and configurations important to your organization. More quality checks are forthcoming in future releases; provide feedback on what checks matter most to you.
Here is a closer look at what we improved in the latest release.
Notable Changes
There is a new family of commands to use to run quality checks:
liquibase show
to list the available quality checksliquibase run
to run the available quality checks
along with enable
, disable
, customize
, copy
, reset
, and delete
options, and liquibase checks --help
to learn more.
The following is a list of changes related to quality checks:
- Implement enable/disable subcommands [DAT-7794]
- Implement run subcommand for dynamic rules [DAT-7796]
- Implement customize subcommand [DAT-7797]
- Implement copy subcommand [DAT-7798]
- Implement reset subcommand [DAT-7800]
- Implement show subcommand for dynamic rules [DAT-7801]
- Implement delete subcommand [DAT-7803]
- STATIC CHECK :: Changeset Must Have A Label [DAT-7924]
- STATIC CHECK :: Changeset Must Have A Context [DAT-7925]
- STATIC CHECK :: Changeset Must Have A Comment [DAT-7926]
- STATIC CHECK :: Warn When "DROP TABLE" Detected [DAT-7928]
- STATIC CHECK :: Warn When "DROP COLUMN" Detected [DAT-7930]
- STATIC CHECK :: Warn When Data Type Modification is Detected [DAT-7934]
- STATIC CHECK :: Warn when 'GRANT' Statement Detected [DAT-7953]
- STATIC CHECK :: Warn when 'REVOKE' Statement Detected [DAT-7954]
- DYNAMIC CHECK :: Warn when Tables have more than n columns [DAT-7983]
- Check for License & Limit gate [DAT-7802]
Resolved Liquibase Issues
- Fail when creating a Scope with a null-parent #1354. #1377 Treehopper
- Fixes Postgresql bit column support #1468 nderwin
- Fix OSGiResourceAccessor failing due to javax.activation #1534 CMoH
- fixed usage of computed values in prepared insert/update changes #1590 Plunts
- Ensure that the root scope is initialized correctly regardless of whether a scope manager has been configured yet or not #1768 rudolfv
- Fix UniqueConstraint snapshot query on db2z #1771 dileepan91
- generate-changelog on an Oracle db ignores diffIncludeTablespace when creating MissingTableChange #1812 briar354
- Get Set deleteCascade for serializer mapping #1837 smith-xyz
- Add support for changeset ids and authors with spaces in formattedsql changelogs. #1845 jpz
- More efficient XML resource loading #1860
- Postgresql: Preserve existing search_path when setting the defaultSchemaName #1864
- Fixed postgresql addPrimaryKey cluster handling #1880
- CLI no longer reading defaultsFile from classpath #1893
- Manage parent directory relative to changelog in IncludeAll #1968 Cubid
- Improve synchronization of LockServiceFactory reset #1991
- Fix createSequence for h2 when dataType is specified #1992
- [PRO] Pro Enhancement Request: set 'splitStatements' to 'false' for Stored Logic changesets when generating a Formatted SQL changelog [DAT-7391]
- [PRO] Allow users to indicate names and location of their spool files when using runWith:sqlplus [DAT-7580]
- [PRO] Cannot update MariaDB expand based storage after first liquibase update [DAT-7879]
- [PRO] Liquibase PRO generate-changelog error on Postgresql functions that have long signatures containing any '()' characters [DAT-7894]
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:

This release includes community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and enhancements to Liquibase Hub performance and pipelines.
Here is a closer look at what we improved in the latest release.
Notable Changes
In Liquibase 4.4.3, there are improvements to the FileSystemAlreadyExistsException
output message. The original FileSystemNotFoundException
warning was changed to be an info message that does not include logs of stack traces. If you still see stack traces, contact us. #1885dertin
Additionally, we fixed bugs in SQL files: #1798pierre2113
- The
sqlFile
andrelativeToChangelogFile
attributes fail when using thelogical-file-path
attribute#1277darkcamper - The wrong path received if
relativeToChangelogFile=true
anddatabaseChangeLog
haslogical-file-path != PhisicalFilePath
#1353kezhevatov
Resolved Liquibase Issues
- Added a separate query for DB2 on AS400, which fixed the
drop-all
command on DB2 for iSeries #1412wardvijf - Fixed the
logical-file-path
attribute not being serialized #1471tms-91 - Fixed the
SqlParser
bug related to parsing UTF-8 valid symbols #1513matteoturra - Fixed the invalid update SQL generated for HSQL database in
InsertOrUpdateGeneratorHsql.java
#1563devorgpl - Added a validation error when the
customChange
Change Type has no name attribute#1592danielthegray - Fixed the issue with Liquibase failing to create a DATABASECHANGELOGLOCK record and apply changesets into Firebird 3.
isNumericBoolean
now checks theFirebird3Database
instance type and returns Boolean for Firebird 3. #1875koushikd02 - Fixed the issue with escaping question marks in PostgreSQL: #1877juszczakn and goostleek
- Fixed the issue with
ClassCastException
in a standard lock service:java.time.LocalDateTime
cannot be cast tojava.util.Date
#1878jocmer-evooq and haidiiii - Added the MySQL reserved word
CUBE
to the list of Liquibase reserved columns for the schema migration to work.CUBE
is a reserved word as of MySQL 8.0.1 #1515jasonwjones - Added the ability to handle empty lines at the beginning of a formatted SQL #1713smith-xyz
- Fixed loading the
CLOB
data into PostgreSQL. Instead of loading theCLOB
file name, PostgreSQL loads the content of theCLOB
file. #1791jidma - Changed the MD5SUM column value from
RawSqlStatement
toUpdateStatement
#1602biryukovpavel - Fixed synchronization in
ChangeLogHistoryServiceFactory.java
#1361Olard - Fixed the changeset execution failure related to the
DATICAL_SPERRORLOG
table when using therunWith=sqlplus
attribute and executing operations as a user with onlySELECT
,UPDATE
, andINSERT
permissions [DAT-7410] - Combined Liquibase GitHub Action examples into the
liquibase/liquibase-github-action-example
repository [DAT-6679] - Enabled the
drop-all
report to work with a registered changelog with no extra arguments and send the information to Liquibase Hub [DAT-7554] - Renamed the
tablespaceName
parameter toliquibaseTablespaceName
[DAT-7676]
Contributions
Our community has built a lot. This release includes 15 PRs by 17 authors. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors:

This release includes community-contributed pull requests, Liquibase Community and Liquibase Pro bug fixes, and enhancements to the drop-all
command and SQL*Plus.
Here is a closer look at what we improved in the latest release.
Known Issues
UniqueConstraintSnapshotGenerator
does not handle more than four unique constraints. The diff
command reports a difference in unique constraints caused by the PostgreSQL database snapshot having fewer unique constraints than the snapshot from another database compared. Also, the issue can cause unreliable diffs and changelog generation for all non-MySQL databases. The fix will be available in the next release. #1996
Resolved Liquibase Community Issues
- Changed
NullPointerException
toChangeLogParseException
for the output when there is a typo in achangeSet
node #1593 - Added the
support
method toDatabaseConnection
#1784 - Fixed the issue with handling serial and
bigserial
ifliquibase.convertDataTypes=false
#1883 - Improved the
ConfigurationValueProvider
performance #1952 - Added the ability to allow an empty string for the
defaultValue
attribute #1963 - Reintroduced support for the
-D
arguments in the CLI #1943 - Restored the
update-testing-rollback
command #1939 - Added the Maven goal for
unexpected-changesets
#1972
Resolved Liquibase Pro Issues
- Added the ability to handle special characters in procedures when using the
generate-changelog
command. [DAT-6799] - SQL*Plus: Fixed the issue with formatted SQL changesets and
runwith:sqlplus
being stopped unless Liquibase includes a quit statement. [DAT-7376] - SQL*Plus: Fixed the SQL Plus spool log issue. [DAT-7461]
Additional Resolved Issues
- Extended the
drop-all
command with optionalhubConnectionId
andhubProjectId
attributes. [DAT-6972] - Fixed nested properties and the substitution of variables in YML changelogs. [DAT-7294]
- Implemented the ability to use
connectionjdbcurl
when there is no project or connection ID with thedrop-all
command. [DAT-7388] - Improved the Liquibase Pro License key messaging. [DAT-7036]
- Added the ability to handle a declined auto-registration when running the
drop-all
command. [DAT-7489] - Fixed auto-registration issues. [DAT-7505]
Note: For more information, check our drop-all command documentation.
Contributions
Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong!
- danielthegray #1593 Changed
NullPointerException
toChangeLogParseException
for the output when there is a typo in achangeSet
node - alexandru-slobodcicov #1784 Added the
support
method toDatabaseConnection
- szandany:
- stuartwdouglas and pmancaux #1952 Improved the
ConfigurationValueProvider
performance - ZwoCa #1963 Added the ability to allow an empty string for the
defaultValue
attribute - Gama11 #1943 Reintroduced support for the
-D
arguments in the CLI - chornota #1939 Restored the
update-testing-rollback
command

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.4.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.4.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.5

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.4

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.3.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.2.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.2.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.2.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.1.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.10.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.1.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.10.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.0.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.0.0-beta2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.10.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.10.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.9.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v4.0.0-beta1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.9

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.8

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.7

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.6

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.5

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.4

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/v3.8.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.8.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.7.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.6.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.6.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.6.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.6.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/3.6.0-beta1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.5

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.4

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.5.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.4.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.4.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.4.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.5

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.4

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.2

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.0

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.2.3

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.1.1

For release notes, visit: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.0.8
To see the release notes for Liquibase 3.0.7 and earlier, refer to Liquibase releases.