Liquibase Core Changelog
===========================================

Changes in version 5.0.3 (2026.05.15)

# Liquibase Community 5.0.3 is a minor patch release
See the [Liquibase Community 5.0.3 Release Notes](https://docs.liquibase.com/community/community-release-notes/liquibase-community-503-release-notes) for the complete set of release information.

## New Features
- (#7674) perf: cache ranChangeSets lookup in SqlChangeLogParser.generateId @andrewcedgar
- (#7660) [DAT-22091] Migrate default branch from master to main @sayaliM0412
- (#1964) MSSQL exclude schema name when diff view definition @MatrixDai
- (#7603) fix: make LockServiceCommandStep.isDBLocked thread-safe @filipelautert
- (#1944) Exclude system table systranschemas for mssql diff @MatrixDai
- (#7647) Use LEFT JOIN instead of NOT IN for PostgreSQL sequence dependency detection @harsh-kaushal
- (#7639) DAT-22653: update GHA workflows and functionality @sayaliM0412
- (#7618) DAT-22530: update GitHub Actions to use latest versions of actions @sayaliM0412
- (#7610) chore(deps): upgrade testcontainers to 2.0.3 @filipelautert

## Bug Fixes
- (#7680) fix(mssql): preserve schema prefix in view definitions during generate-changelog @wwillard7800
- (#7689) DAT-22984/DAT-29985: Sanitize table names when saving files. Escape column-name list when running generate changelog @abrackx
- (#7488) SEARCH\_PATH setup as LOCAL for Postgres @MalloD12
- (#7659) fix: OracleDatabase.correctObjectName() no longer mangles column names starting with "int" @filipelautert
- (#7642) fix: escape mentions and special chars in release notes @filipelautert
- (#7646) Discover custom LogService before configuration init @filipelautert
- (#7500) Issue-7461 :: diff-changelog dropps now the expected constraint  @MalloD12
- (#7542) fix: Capture float precision again on Oracle DBs @marchof

## Security, Driver and Other Updates
- (#7716) fix(ci): skip release-docker on dry-run @jandroav
- (#7715) feat(docker-scan): persist main HEAD scan to scan-results branch [TECHOPS-408] @jandroav
- (#7714) TECHOPS-432: add docker/.trivyignore to suppress SNAPSHOT-version false positive @jandroav
- (#7712) TECHOPS-427: bump LPM\_VERSION 0.3.3 -> 0.3.4 to clear 5 Go stdlib HIGH CVEs @sayaliM0412
- (#7702) fix(TECHOPS-417): propagate packages: write to nested docker workflows @sayaliM0412
- (#7596) Update README.md @mnovotnyLB
- (#7591) DAT-22396: fix approvers and skip completed orchestrator jobs for v5.0.2 recovery @jnewton03
- (#7590) DAT-22396: temp skip completed jobs for v5.0.2 recovery @jnewton03
- (#7588) DAT-22397:fix: update approvers list for manual deployment approval @sayaliM0412
- (#7699) chore(deps-dev): bump net.snowflake:snowflake-jdbc from 4.1.0 to 4.2.0 in the build-tools group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7695) chore(deps): bump the test-deps group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7688) chore(deps-dev): bump the production-deps group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7691) chore(deps-dev): bump org.xerial:sqlite-jdbc from 3.53.0.0 to 3.53.1.0 in the build-tools group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7692) fix(TECHOPS-365): pin docker base image to temurin:21-jre-noble @sayaliM0412
- (#7662) chore(deps): bump targetMavenVersion from 3.9.14 to 3.9.15 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7664) chore(deps): bump the production-deps group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7670) chore(deps): bump org.testcontainers:testcontainers-bom from 2.0.4 to 2.0.5 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7671) chore(deps): bump org.projectlombok:lombok from 1.18.44 to 1.18.46 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7672) chore(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7677) chore(deps): bump eclipse-temurin from 21-jre-noble to 25-jre-noble in /docker @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7678) chore(deps): bump the github-actions group across 1 directory with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7681) chore(deps-dev): bump the build-tools group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7658) chore(deps): bump the production-deps group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7636) chore(deps): bump javax.servlet:javax.servlet-api from 3.1.0 to 4.0.1 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7652) chore(deps): bump jakarta.servlet:jakarta.servlet-api from 5.0.0 to 6.0.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7614) chore(deps): bump spring.version from 7.0.5 to 7.0.6 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7613) chore(deps): bump targetMavenVersion from 3.9.13 to 3.9.14 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7621) chore(deps): bump org.testcontainers:testcontainers-bom from 2.0.3 to 2.0.4 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7626) chore(deps): bump the test-deps group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7635) chore(deps-dev): bump the build-tools group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7656) chore(deps): bump ant.version from 1.10.15 to 1.10.17 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7657) chore(deps): bump the github-actions group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7628) DAT-22652: pin GitHub Actions to commit SHAs for supply chain security @jnewton03
- (#7610) chore(deps): upgrade testcontainers to 2.0.3 @filipelautert
- (#7577) chore(deps-dev): bump org.apache.felix:maven-bundle-plugin from 5.1.9 to 6.0.2 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7606) chore(deps): bump org.projectlombok:lombok from 1.18.42 to 1.18.44 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7608) chore(deps-dev): bump org.mockito:mockito-core from 5.22.0 to 5.23.0 in the test-deps group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7579) chore(deps): bump the github-actions group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7586) chore(deps): bump the build-tools group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7576) chore(deps-dev): bump org.mockito:mockito-core from 5.21.0 to 5.22.0 in the test-deps group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7578) chore(deps): bump org.yaml:snakeyaml from 2.5 to 2.6 @[dependabot[bot]](https://github.com/apps/dependabot)

### Full Changelog: [https://github.com/liquibase/liquibase/compare/v5.0.2...v5.0.3](https://github.com/liquibase/liquibase/compare/v5.0.2...v5.0.3)


Changes in version 5.0.2 (2026.03.03)

# Liquibase Community 5.0.2 is a minor patch release
See the [Liquibase Community 5.0.2 Release Notes](https://docs.liquibase.com/community/community-release-notes/liquibase-community-502-release-notes) for the complete set of release information.

## Changes
- (#7540) DAT-21768: Fix sonar workflow inputs and add missing thisSha output @jnewton03
- (#7483) Fix: Flush BufferedWriter in YamlSnapshotSerializer to prevent snapshot file truncation @Folgerjun
- (#7510) feat: add comprehensive job summary to dry-run release workflow @jandroav
- (#7509) fix: remove workflow-logs option to eliminate skipped job warnings @jandroav
- (#7508) fix: add contents:write permission for draft release download @jandroav
- (#7507) fix: add retry logic for draft release download in Maven job @jandroav
- (#7506) fix: use gh CLI for dry-run Maven download in release-published.yml @jandroav
- (#7425) Fixed Issue #7413: SQL Anywhere: Constraint name is not considered for PRIMARY KEY @mkarg
- (#7380) Gh7374 remove oss mentions @petepickerill

## Notable Changes
- (#7439) Fix performance degradation since implementing analytics @tati-qalified

## New Features
- (#7452) fix: detect comment changes on columns and tables @peteraisher
- (#7537) fix: Use default logger service instead of throwing exception in Scope#getCurrentScope() @jnewton03
- (#7487) Creates a test to ensure all COMMAND\_NAME and \*\_ARG constants are always public static final @tati-qalified
- (#7448) rewrite: Simplified MSSQLDatabase escaping @mkarg
- (#7539) fix(build): configure GMavenPlus 4.3.0 to detect Groovy in test scope @filipelautert
- (#7528) DAT-21265 :: Jdbc drivers upgrade @MalloD12
- (#7493) chore: update workflow permissions for release and test jobs @sayaliM0412
- (#7479) Extract checksum compatibility logic in StandardChangeLogHistoryService @maximevw
- (#7478) feat: Upgrade Ubuntu version in CI workflow to 24.04 @sayaliM0412
- (#7465) DAT-21398: fix(tests): update macOS version in test matrix to macos-15-intel @sayaliM0412
- (#7378) Add defensive null pointer checks across codebase @filipelautert
- (#7401) chore: update Liquibase Pro reference to Liquibase Secure in README.md @filipelautert

## Bug Fixes
- (#7532) Fix clearCheckSums so checksums are correctly re-evaluated @MalloD12
- (#7457) Fix issue 7184 @MalloD12
- (#7468) Fix #7385: Fix PostgreSQL rollback with quoted numeric schema names @RohanMittal-01
- (#7521) fix: Use correct grammar when reporting unexpected changes @Vampire
- (#7569) Fix failing test @MalloD12
- (#7451) Fixed undesired logicalFilePath inheritance of included changesets  @MalloD12
- (#7489) showSummaryOutput set to LOG by default for Liquibase API @MalloD12
- (#7501) INT-1717: fix missing quotes in query in SetColumnRemarksGeneratorSnowflake @HorbatenkoYehor
- (#7464) fix(mysql/mariadb): respect columnDataType in renameColumn for modern versions @filipelautert
- (#7395) Liquibase throws exception when the filePath property is empty #7320 @Parthiee
- (#7505) fix: use gh CLI for Maven dry-run release downloads @jandroav
- (#7504) fix: use tag instead of releaseId for dry-run Maven downloads @jandroav
- (#7503) fix: add id-token permission to package job in release-published.yml @jandroav
- (#7502) DAT-21648: Pass tag parameter to package workflow for release downloads @jandroav
- (#7469) (Fixes #7416) Add explicit dependencies with exclusions to liquibase-core pom.xml to fix problem with missing exclusions and duplicated dependency `commons-text` @marwin1991
- (#7456) Fix Row affected count case sensitive issue @MalloD12
- (#7417) Fix Incompatibility Between Quarkus and Liquibase   @MalloD12
- (#7390) Allow skipping a missing custom change (Copy of 6627) @MalloD12
- (#7426) Fixed issue #7415: MSSQL, SQL Anywhere: Does not quote tablespace name @mkarg
- (#7394) fix: Support reading liquibase.classpath from properties file @filipelautert
- (#7430) fix: reinstate ability to run without SnakeYaml/OpenCSV on Java 25 by delaying class loading @chadlwilson
- (#6639) fix: prefix table name with schema name when adding column constraint @Xstoudi
- (#6929) Fix for TIMESTAMP with TIME ZONE issue for Oracle @MalloD12
- (#7389) Replace 'oss' and 'open source' occurrences by 'Community' @MalloD12

## Security, Driver and Other Updates
- (#7572) chore(deps-dev): bump com.oracle.database.jdbc:ojdbc8 from 19.29.0.0 to 19.30.0.0 in the build-tools group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7568) chore(deps): bump the production-deps group with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7567) chore(deps): bump spring.version from 7.0.3 to 7.0.5 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7541) chore(deps-dev): bump net.snowflake:snowflake-jdbc from 3.28.0 to 4.0.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7564) chore(deps-dev): bump org.javacc.plugin:javacc-maven-plugin from 3.0.3 to 3.8.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7561) chore(deps): bump the test-deps group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7562) chore(deps): bump junit-jupiter.version from 6.0.2 to 6.0.3 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7553) chore(deps): bump the github-actions group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7552) chore(deps-dev): bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.5.0 to 3.5.1 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7571) chore(deps): bump the build-tools group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7545) chore(deps-dev): bump com.mysql:mysql-connector-j from 9.5.0 to 9.6.0 in the build-tools group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7538) chore(deps): bump the test-deps group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7534) chore(deps-dev): bump the build-tools group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7526) chore(deps): bump actions/cache from 5.0.1 to 5.0.2 in the github-actions group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7535) chore(deps-dev): bump org.assertj:assertj-core from 3.27.6 to 3.27.7 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7513) chore(deps-dev): bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.4.0 to 3.5.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7518) chore(deps): bump spring.version from 7.0.2 to 7.0.3 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7462) chore(deps-dev): bump org.mockito:mockito-core from 4.11.0 to 5.21.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7494) chore(deps): bump the test-deps group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7497) chore(deps-dev): bump com.microsoft.sqlserver:mssql-jdbc from 12.10.2.jre8 to 12.10.2.jre11 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7480) security: harden GitHub Actions workflow permissions @jnewton03
- (#7491) chore(deps): bump spring.version from 5.3.39 to 7.0.2 @filipelautert
- (#7490) chore(deps): bump the github-actions group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7458) chore(deps): bump groovy.version from 4.0.28 to 5.0.3 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7472) chore(deps): bump the github-actions group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7476) chore(deps-dev): bump the build-tools group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7475) chore(deps): bump targetMavenVersion from 3.9.11 to 3.9.12 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7454) chore(deps): bump org.sonarsource.scanner.maven:sonar-maven-plugin from 5.3.0.6276 to 5.4.0.6343 in the build-tools group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7460) chore(deps): bump org.apache.commons:commons-text from 1.14.0 to 1.15.0 in the production-deps group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7453) chore(deps): bump the github-actions group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7449) chore(deps): bump the build-tools group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7438) chore(deps): bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 in the production-deps group @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7420) chore(deps): bump commons-io:commons-io from 2.20.0 to 2.21.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7437) chore(deps): bump the build-tools group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7405) chore(deps): bump junit-jupiter.version from 5.13.4 to 6.0.1 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7407) chore(deps): bump org.junit.platform:junit-platform-suite from 1.13.4 to 6.0.1 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7408) chore(deps): bump org.junit.jupiter:junit-jupiter from 5.13.4 to 6.0.1 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7406) chore(deps-dev): bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.3.0 to 3.4.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7414) chore(deps-dev): bump the build-tools group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7398) chore(deps): bump the github-actions group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7399) chore(deps): bump org.liquibase.ext:liquibase-sdk-maven-plugin from 0.10.25 to 0.11.0 @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7400) chore(deps): bump the build-tools group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7393) DAT-20490 Revisit minimal package removal from OSS starting in 5.0 @jandroav
- (#7367) chore(deps): bump the github-actions group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot)
- (#7387) chore(deps): bump the build-tools group across 1 directory with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot)

### Full Changelog: [https://github.com/liquibase/liquibase/compare/v5.0.1...v5.0.2](https://github.com/liquibase/liquibase/compare/v5.0.1...v5.0.2)



Changes in version 5.0.1 (2025.10.03)

# Liquibase Community 5.0.1 is a minor patch release
See the [Liquibase Community 5.0.1 Release Notes](https://docs.liquibase.com/community/community-release-notes/liquibase-community-501-release-notes) for the complete set of release information.

### License corrections for Maven
The license block for Maven users has been corrected to use the Functional Source License (FSL).
- Name: Functional Source License, Version 1.1, ALv2 Future License
- URL: https://fsl.software/FSL-1.1-ALv2.template.md

## Changelog
-(#7350) Update licensing and documentation for Community distribution by @filipelautert


Changes in version 5.0.0 (2025.09.30)

# Liquibase Community 5.0 is a major release
See the [Liquibase Community 5.0 Release Notes](https://docs.liquibase.com/community/release-notes/5-0) for the complete set of release information.

## MAJOR CHANGES IN COMMUNITY AND COMMERCIAL DISTRIBUTIONS

Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its Community and the commercial Secure offering. This change is designed to ensure that each distribution is optimized for its respective users: providing Community users with flexibility and control, while delivering scalability, reliability, and governance for Secure enterprise teams. The changes provide Liquibase Secure customers:
- **Developer Productivity.** Enable developers with autonomy and guardrails built directly into their daily workflow.
- **Secure Automation.** Embed governance, security, and compliance into every change automatically.
- **Change Insights.** Deliver audit-ready visibility so every change is trusted, explainable, and observable.

The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments. Therefore, starting with this Liquibase 5.0 release, only the Community distribution is available at the traditional Github, Docker, and Maven access channels.
If you need the Secure commercial offering, please visit [Liquibase.com](https://docs.liquibase.com/secure/release-notes/5-0)
* Learn more [Liquibase 5.0](https://www.liquibase.com/blog/liquibase-5-0-release)

### Liquibase Community Licensing Change
Additionally, Liquibase Community is now licensed under the Functional Source License (FSL). See LICENSE file at the root of the distribution for details. Starting with Liquibase 5.0, contributors will be asked to sign a one-time **Contributor License Agreement (CLA)**. This is handled automatically by CLA Assistant when you open your first pull request.


## Liquibase 5.0 Community Release Notable Changes

### Liquibase Package Manager (LPM) integrated to enable users to install, update, and manage their dependencies
- Liquibase Community 5.0 ships without extensions, drivers, and many other packages and dependencies. This change provides a much lighter, modular, and customizable Liquibase experience for Community users. Importantly, this flexibility both allows and requires users to manage their Liquibase dependencies for their specific needs.
- Liquibase Package Manager is now integrated and available for use directly from within the Community CLI experience with a new `liquibase lpm` command as the preferred method for managing dependencies.
- Learn more at the [LPM README](https://github.com/liquibase/liquibase-package-manager)

### Liquibase Community 5.0+ ships with the Functional Source License (FSL)
- "The Functional Source License (FSL) is a Fair Source license that converts to Apache 2.0 or MIT after two years. It is designed for SaaS companies that value both user freedom and developer sustainability. FSL provides everything a developer needs to use and learn from your software without harmful free-riding."
- Learn more at https://fsl.software/

### SnowFlake JDBC Driver CVE Fix
- Liquibase 5.0 patches a vulnerability found in Snowflake JDBC driver (CVE-2025-24789) and resolves issue with logicalfilepath reported in 4.31.0. Note: Neither Community nor the commercial Secure products were affected by this CVE.

### Java 8 and Java 11 support is deprecated
- The minimal Java dependency for Liquibase 5.0+ is Java 17. This update enables Liquiabase to build, test, and ship with modern and more secure dependencies.

### ValueDate Checksum bug fix
- In the last release, an issue was introduced by a change in how valueDate was calculated and incorporated into the checksum calculations. This issue has been fixed by ensuring that rawDatevalue is excluded from checksum calculations.
- (#7101) fix: prevent rawDateValue from being used for checksum calculations @filipelautert

## Changelog of Community PRs

## New Features
- (#7286) Allow anyAttribute in dbchangelog-latest.xsd complex types @filipelautert
- (#7190) Create LPM command (DAT-20511) @filipelautert
- (#7216) Deprecate Java 8/11 @wwillard7800
- (#7187) Fixed: #7186 - Liquibase creates too short VARCHAR and CHAR fields on MS SQL databases using multi-byte encodings, effectively leading to data truncation eventually @mkarg
- (#7230) DAT-16042: Add test cases for SQL injection and HTML content pattern validation in `SimpleSqlGrammarTest` and `StringUtilTest` @filipelautert
- (#7214) INT-1414 - Implement credential obfuscation in SQL statements for Snowflake STAGE objects @filipelautert
- (#7202) INT-1416: refactored Unwrapping of DatabaseObject's inner objects while snapshot serialization @SvampX
- (#7199) Make Update Sql be Update SQL in command title @wwillard7800
- (#7177) [7176]: Mapped tag in History.Changeset @hemanthsridhar
- (#7144) Refactored to allow creation of a ChangelogPrintService for use by generateChangeLog and diffChangeLog operations @wwillard7800
- (#7104) Parameters for update SQL command @wwillard7800
- (#7118) Honor strip comments flag passed in scope in executeSql command DAT-20417 @wwillard7800

## Bug Fixes
- (#7269) INT-1392: add get/setArguments and get/setProcedureName methods into … @HorbatenkoYehor
- (#7274) Fixed errors in tests on Windows 11 + git-bash cygwin @b-gyula
- (#7264) Back out change to ignore nested objects in TableExistsPreCondition @wwillard7800
- (#7257) INT-1416: Updated handling of complex UnwrappedLiquibaseSerializables @SvampX
- (#7233) Comparator resoluition should work in non-flat classloaders @gastaldi
- (#7227) #7220: Thread-safety issue when running Liquibase in a multithreaded and multitenant environment @galovics
- (#7231) fix sqlite JDBC URL parsing failure when tracking licenses (DAT-20124) @StevenMassaro
- (#7187) Fixed: #7186 - Liquibase creates too short VARCHAR and CHAR fields on MS SQL databases using multi-byte encodings, effectively leading to data truncation eventually @mkarg
- (#7154) Only mark changeset as SKIPPED if all changes are skipped GH issue 7153 @wwillard7800
- (#7200) Remove duplicate header check for formatted SQL and add log message @wwillard7800
- (#7208) Handle overwrite flag for formatted SQL correctly in generateChangelog @wwillard7800
- (#7155) Option to allow snapshot to continue after finding null snapshot ID  DAT-20436 @wwillard7800
- (#7182) Fix OAuth2Secret credential exposure in update-sql command @filipelautert
- (#7192) Fixes for regressions in DAT-20619, DAT-20620, and DAT-20621 @wwillard7800
- (#7178) Throw exception if a change type has a namespace and cannot be found @wwillard7800
- (#7168) Use missing objects instead of changed objects in test DAT-20536 @wwillard7800
- (#7158) Handle situation that occurs when generateChangeLog is run with diffTypes=data @wwillard7800
- (#7165) Fix rename column generator test @wwillard7800
- (#6920) fix: Change the rename column query for mysql v8 and later using rename column to @quangdutran
- (#7141) Rollback OpenCSV version to 5.10 and address CSV loading issue @filipelautert
- (#7140) NullPointerException in SpringLiquibase.toString() @tweimer
- (#7152) fix updateSQL command ignoring endDelimiter for some statements #7148 @ponziani
- (#7108) Fix the version check for the MySQL FILTER\_CONDITION to handle minor version > 0 DAT-20441 @wwillard7800
- (#7101) fix: prevent rawDateValue from being used for checksum calculations @filipelautert
- (#7079) feat: add logic to exclude resources from liquibaseHomeUri/internal in resource processing for includeAll @filipelautert

## DevOps
- (#7084) DAT-20288: fill in details for root's liquibase.build.properties file @sayaliM0412
- (#7219) DAT-20673 Secure: Create new package locations @jandroav

## Security, Driver and Other Updates
<details>
<summary>39 changes</summary>
- (#7292) Remove update-docs-oss-pro-version job @sayaliM0412
- (#7291) chore(deps): bump the build-tools group with 3 updates @dependabot[bot]
- (#7284) chore(deps-dev): bump org.postgresql:postgresql from 42.7.7 to 42.7.8 in the build-tools group @dependabot[bot]
- (#7283) chore(deps-dev): bump org.assertj:assertj-core from 3.27.4 to 3.27.5 in the test-deps group @dependabot[bot]
- (#7281) chore(deps): bump org.projectlombok:lombok from 1.18.40 to 1.18.42 @dependabot[bot]
- (#7277) chore(deps): bump the build-tools group with 3 updates @dependabot[bot]
- (#7266) chore(deps-dev): bump org.mariadb.jdbc:mariadb-java-client from 3.5.5 to 3.5.6 in the build-tools group @dependabot[bot]
- (#7251) chore(deps): bump org.projectlombok:lombok from 1.18.38 to 1.18.40 @dependabot[bot]
- (#7252) chore(deps): bump actions/github-script from 7 to 8 in the github-actions group @dependabot[bot]
- (#7242) chore(deps): bump the github-actions group across 1 directory with 3 updates @dependabot[bot]
- (#7241) chore(deps-dev): bump the build-tools group across 1 directory with 2 updates @dependabot[bot]
- (#7236) chore(deps): bump org.yaml:snakeyaml from 2.4 to 2.5 @dependabot[bot]
- (#7234) chore(deps): bump org.sonarsource.scanner.maven:sonar-maven-plugin from 5.1.0.4751 to 5.2.0.4988 in the build-tools group @dependabot[bot]
- (#7223) chore(deps-dev): bump org.firebirdsql.jdbc:jaybird from 5.0.8.java8 to 5.0.9.java8 in the build-tools group @dependabot[bot]
- (#7225) chore(deps): bump actions/setup-java from 4 to 5 in the github-actions group @dependabot[bot]
- (#7207) chore(deps): bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.2 to 3.11.3 in the build-tools group @dependabot[bot]
- (#7206) chore(deps): bump actions/checkout from 4 to 5 in the github-actions group @dependabot[bot]
- (#7203) chore(deps): bump org.mockito:mockito-core from 4.11.0 to 5.19.0 @dependabot[bot]
- (#7198) chore(deps-dev): bump net.snowflake:snowflake-jdbc from 3.25.1 to 3.26.0 in the build-tools group @dependabot[bot]
- (#7195) chore(deps): bump org.firebirdsql:firebird-testcontainers-java from 1.5.1 to 1.6.0 @dependabot[bot]
- (#7189) chore(deps): bump the github-actions group with 2 updates @dependabot[bot]
- (#7188) chore(deps-dev): bump org.mariadb.jdbc:mariadb-java-client from 3.5.4 to 3.5.5 in the build-tools group @dependabot[bot]
- (#7185) chore(deps-dev): bump org.assertj:assertj-core from 3.27.3 to 3.27.4 in the test-deps group @dependabot[bot]
- (#7160) chore(deps-dev): bump org.apache.commons:commons-compress from 1.27.1 to 1.28.0 in the production-deps group @dependabot[bot]
- (#7164) chore(deps-dev): bump the build-tools group across 1 directory with 2 updates @dependabot[bot]
- (#7157) chore(deps): bump com.opencsv:opencsv from 5.10 to 5.12.0 @dependabot[bot]
- (#7135) chore(deps): bump commons-io:commons-io from 2.19.0 to 2.20.0 @dependabot[bot]
- (#7156) chore(deps): bump org.codehaus.mojo:flatten-maven-plugin from 1.7.1 to 1.7.2 in the build-tools group @dependabot[bot]
- (#7132) chore(deps): bump the github-actions group with 2 updates @dependabot[bot]
- (#7150) chore(deps): bump org.apache.commons:commons-text from 1.13.1 to 1.14.0 in the production-deps group @dependabot[bot]
- (#7139) chore(deps-dev): bump the build-tools group across 1 directory with 2 updates @dependabot[bot]
- (#7142) chore(deps): bump the test-deps group across 1 directory with 7 updates @dependabot[bot]
- (#7127) chore(deps): bump the build-tools group across 1 directory with 3 updates @dependabot[bot]
- (#7115) chore(deps): bump the test-deps group with 5 updates @dependabot[bot]
- (#7120) chore(deps): bump the production-deps group with 2 updates @dependabot[bot]
- (#7121) chore(deps): bump targetMavenVersion from 3.9.10 to 3.9.11 @dependabot[bot]
- (#7119) Fix dependabot.yml version syntax error @jnewton03
- (#7117) Add Spring Framework 6.x to dependabot ignore list @jnewton03
- (#7106) Reduce dependabot PR overload through strategic grouping and automation @jnewton03
</details>

### Full Changelog: [https://github.com/liquibase/liquibase/compare/v4.33.0...v5.0.0](https://github.com/liquibase/liquibase/compare/v4.33.0...v5.0.0)

Changes in version 4.33.0 (2025.07.09)

# Liquibase 4.33.0 is a major release

Liquibase 4.33.0 delivers important updates across Policy Checks, Change Automation, and other areas of platform enhancement, along with critical bug fixes and improvements to MongoDB, PostgreSQL, and DB2 on Z/OS support.
See the [Liquibase 4.33.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.33.0.html) for the complete set of release information.


## Notable Changes

**[PRO]**

### Change Automation
-  **PostgreSQL Composite TYPE Support in Database Inspection.** Liquibase Pro now includes support for inspecting PostgreSQL Composite TYPE objects during database inspection operations such as snapshot and diff. This enhancement ensures Composite TYPEs appear in inspection outputs, helping users manage and track changes to complex data structures more effectively. [INT-1249] [INT-135]
- **PostgreSQL Composite TYPE Support in generate-changelog and diff-changelog.** Liquibase Pro now includes support for detecting PostgreSQL composite TYPE objects during generate-changelog and diff-changelog operations. This enhancement ensures that composite TYPE definitions—used to group multiple fields into a custom data structure—are captured and modeled alongside other schema elements, helping users manage and track changes more comprehensively. [INT-1251]
-  **PostgreSQL Password Escaping Enhancement.** Liquibase now escapes special characters in PostgreSQL passwords when using the psql native executor. Previously, if a password included characters requiring percent-encoding (such as @, %, or #), the executor would fail with a psql: error: invalid percent-encoded token message. [DAT-20254]
-  **Db2 on Z/OS JCL Executor.** Liquibase Pro now includes the ability to submit JCL jobs to the mainframe via Db2 DSNUTILU stored procedure. This enables users to automate more sophisticated procedures by integrating system level activities and database activities in a standard changelog format. This feature is enabled by a runwith:JCL decoration on applicable changesets containing properly formatted JCL.[INT-573, INT-1217]
-  **Improved Persistent Spool File Behavior for SQLPlus Executor.** The SQLPlus executor ensures that spool files are always retained when `--sqlplus-create-spool=true`, giving users consistent access to output files. Previously, spool file retention was tied to the `--sqlplus-keep-temp` setting; now, this setting applies only to temporary SQL files, not spool files. This decoupling improves clarity and gives users more control—if a spool file is created, it will remain unless users opt out by setting `--sqlplus-create-spool=false`. [DAT-18983]

### Policy Checks
-  **MongoChangetypeAttributes Policy Check**. Introduced a new quality check named MongoChangetypeAttributes that allows users to enforce specific values or patterns for attributes within MongoDB-specific changetypes. Users can select a single Mongo changetype (e.g., createIndex, dropCollection) and specify expected values or patterns for its attributes. The check triggers if a specified attribute is present but does not match the defined value or regex—ensuring consistent standards across Mongo changesets. This supports validation across key changetypes attributes like adminCommand, createCollection, insertOne, and more, and enhances control and quality enforcement in MongoDB deployment pipelines. [DAT-18275]

 **[Community]**

### Important dependency updates
 - Liquibase Community 4.33+ has Java 24 core build support.
- The liquibase-cdi and liquibase-cdi-jakarta modules are still supported, but have been removed from the Community distribution to their own repositories.

## ️[PRO] and [Community] Upcoming Change in Distributions
Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its Community and PRO offerings. This change is designed to ensure that each distribution is optimized for its respective users—providing Community users with flexibility and control, while delivering scalability, reliability, and governance for enterprise teams.
The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments. Liquibase 4.32.0 introduced the first general availability (GA) release of independently packaged Pro distributions, along with dedicated distribution channels and key-based access enforcement for Pro capabilities. This marks a significant step toward delivering a curated, enterprise-grade experience for Pro users.
The Community distribution and its delivery channels remain unchanged in this phase.
* Learn more https://docs.liquibase.com/start/install/home.html

## PRO PRs

### New Features
- [DAT-20202] **Added ProJdbcExecutor in order to show SQL warning messages on compiler errors** https://github.com/liquibase/liquibase-pro/pull/2410 by @wwillard7800
- [DAT-20173] **Changes to allow connection to Azure MI** https://github.com/liquibase/liquibase-pro/pull/2489 by @wwillard7800
- [DAT-20286] **Added code to use the getVisibleUrl method for display of URL** https://github.com/liquibase/liquibase-pro/pull/2478 by @wwillard7800
- [INT-1318] **Added application name to JDBC properties** https://github.com/liquibase/liquibase-pro/pull/2381 by @wwillard7800
- [DAT-18983] **Always keep the spool file if it was created** https://github.com/liquibase/liquibase-pro/pull/2476 by @wwillard7800 Documentation: https://docs.liquibase.com/concepts/changelogs/attributes/run-with-spool-file.html
- [DAT-20132] **support regular expressions for string comparisons** https://github.com/liquibase/liquibase-checks/pull/221 by @StevenMassaro
- [DAT-20134] **remove sql from changeset compatibility list for MongoChangetypeAttributes** https://github.com/liquibase/liquibase-checks/pull/224 by @StevenMassaro
- [DAT-20133] **add additional logging around AbstractChangetypeAttributesCheck when not checking change** https://github.com/liquibase/liquibase-checks/pull/223 by @StevenMassaro
- [DAT-20131] **compare JSON in MongoChangetypeAttributes using JSON equivalence** https://github.com/liquibase/liquibase-checks/pull/220 by @StevenMassaro
- [INT-1361] **added default collation to change DataTypeAttribute**. https://github.com/liquibase/liquibase-pro/pull/2457 by @SvampX
- [DAT-19897] **Add InitPropertiesCommandStep to generate Liquibase properties summary** https://github.com/liquibase/liquibase-pro/pull/2245 by @filipelautert
- **feat: Refactor Snowflake JDBC connection, removing all Snowflakedriver dependencies from this class** https://github.com/liquibase/liquibase-pro/pull/2436 by @filipelautert
- [DAT-19668] **New message appears when using the --force flag with rollback-one-changeset, rollback-one-update, and update-one-changeset** https://github.com/liquibase/liquibase-pro/pull/2352 by @wwillard7800
- [DAT-20254] **Use PercentEscaper to percent encode password for PostgreSQL** https://github.com/liquibase/liquibase-pro/pull/2369 by @wwillard7800
- [INT-1217] **Implementation of JCL native executor** https://github.com/liquibase/liquibase-pro/pull/2244 by @wwillard7800
- [DAT-19978] **Flow files will only look in resource accessor for relative paths** https://github.com/liquibase/liquibase-pro/pull/2387 by @StevenMassaro
- [INT-160] **Custom DATABASECHANGELOG and DATABASECHANGELOGLOCK Table Generation for DB2z** https://github.com/liquibase/liquibase-pro/pull/2260 by @CharlesQueiroz
- [INT-1321] **added 'order' attribute to the DataTypeAttribute database object** https://github.com/liquibase/liquibase-pro/pull/2376 by @SvampX
- [DAT-18275] **MongoChangetypeAttributes changetype check** https://github.com/liquibase/liquibase-checks/pull/209 by @StevenMassaro


### Bug Fixes
- [DAT-20176] [DAT-20202] **Liquibase displays SQL compiler errors if they occur.** https://github.com/liquibase/liquibase-pro/pull/2410 by @wwillard7800
- [INT-1362]: **Fix of empty generated changelog in case when only type attributes order is different** https://github.com/liquibase/liquibase-pro/pull/2435 by @SvampX
- [DAT-20175] **Correctly determine if stored logic is valid for Oracle** https://github.com/liquibase/liquibase-pro/pull/2366 by @wwillard7800
- [DAT-20193] **Correctly labeled the AWS and RDS documentation to reflect that it is available to Community users.** https://github.com/liquibase/liquibase-docs/commit/f104c3e3f42f7e6f70d56f75a086a3116f247a33 by @AMBERMW13
- [DAT-20244] **When a formatted SQL changelog is parsed and is found to have multiple header lines, the message will display: Duplicate formatted SQL header at line X** https://github.com/liquibase/liquibase/pull/7036 by @wwillard7800
- [DAT-20282] **The deployment summary no longer includes internal DATABASECHANGELOG updates in the "Rows affected" count.** This prevents inconsistencies when no customer data is changed but the summary previously showed rows affected due to internal tracking. https://github.com/liquibase/liquibase/pull/7063 by @StevenMassaro
- [DAT-18983] **SQLPlus Spool file saves if you set –sqlplus-create-spool: true or –sql-plus-keep-temp=true.** Learn more here: [runWithSpoolFile](https://docs.liquibase.com/concepts/changelogs/attributes/run-with-spool-file.html)
- [DAT-20329] **Sanitize URL before output Associated with PR 226**  https://github.com/liquibase/liquibase-pro/pull/2466 by @wwillard7800
- [DAT-20329] **Sanitize URL before output - Associated with PR 2466**  https://github.com/liquibase/liquibase-checks/pull/226 by @wwillard7800

**Version updates: In the pom.xml for Maven, update postgres to 42.7.7** https://github.com/liquibase/liquibase-pro/pull/2486 by @abrackx

### Security, Driver and Other Updates
- [DAT-20186] **Update fossa_ai.yml** https://github.com/liquibase/liquibase-pro/pull/2330 by @sayaliM0412
- [DAT-20186] **Update fossa_ai.yml** https://github.com/liquibase/liquibase-commercial-bigquery/pull/90 by @sayaliM0412
- chore(deps): **bump com.google.cloud:libraries-bom from 26.61.0 to 26.62.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/110 by @dependabot
- chore(deps): **bump com.google.cloud:libraries-bom from 26.59.0 to 26.61.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/100 by @dependabot
- chore(deps): **bump dorny/test-reporter from 1.9.1 to 2.0.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/79 by @dependabot
- chore(deps): **bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.3** https://github.com/liquibase/liquibase-commercial-bigquery/pull/102 by @dependabot
- chore(deps): **bump org.liquibase:liquibase-parent-pom from 0.5.4 to 0.5.8** https://github.com/liquibase/liquibase-commercial-bigquery/pull/101 by @dependabot
- chore(deps): **bump org.sonarsource.scanner.maven:sonar-maven-plugin from 4.0.0.4121 to 5.1.0.4751** https://github.com/liquibase/liquibase-commercial-bigquery/pull/85 by @dependabot
- chore(deps-dev): **bump junit-platform.version from 1.11.3 to 1.12.2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/97 by @dependabot
- chore(deps): **bump actions/create-github-app-token from 1 to 2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/92 by @dependabot
- chore(deps): **bump org.apache.maven.surefire:surefire-junit-platform from 3.5.2 to 3.5.3** https://github.com/liquibase/liquibase-commercial-bigquery/pull/99 by @dependabot
- chore(deps-dev): **bump junit.version from 5.11.4 to 5.12.2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/98 by @dependabot
- chore(deps): **bump org.junit:junit-bom from 5.11.4 to 5.13.3 in /dist** https://github.com/liquibase/liquibase-pro/pull/2493 by @dependabot
- chore(deps-dev): **bump org.junit.vintage:junit-vintage-engine from 5.12.1 to 5.13.3 in /pro** https://github.com/liquibase/liquibase-pro/pull/2499 by @dependabot
- chore(deps): **bump org.junit:junit-bom from 5.12.1 to 5.13.3 in /liquibase-pro-extension-testing** https://github.com/liquibase/liquibase-pro/pull/2495 by @dependabot
- chore(deps): **bump org.junit:junit-bom from 5.12.1 to 5.13.3 in /licensing** https://github.com/liquibase/liquibase-pro/pull/2497 by @dependabot
- chore(deps): **bump org.junit:junit-bom from 5.12.1 to 5.13.3 in /liquibase-pro-integration-tests** https://github.com/liquibase/liquibase-pro/pull/2498 by @dependabot
- chore(deps): **bump org.junit:junit-bom from 5.12.1 to 5.13.3 in /pro** https://github.com/liquibase/liquibase-pro/pull/2501 by @dependabot
- chore(deps): **bump com.google.cloud:libraries-bom from 26.61.0 to 26.62.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/110 by @dependabot
- chore(deps): **bump com.google.cloud:libraries-bom from 26.59.0 to 26.61.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/100 by @dependabot
- chore(deps): **bump dorny/test-reporter from 1.9.1 to 2.0.0** https://github.com/liquibase/liquibase-commercial-bigquery/pull/79 by @dependabot
- chore(deps): **bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.3** https://github.com/liquibase/liquibase-commercial-bigquery/pull/102 by @dependabot
- chore(deps): **ump org.liquibase:liquibase-parent-pom from 0.5.4 to 0.5.8** https://github.com/liquibase/liquibase-commercial-bigquery/pull/101 by @dependabot
- chore(deps): **bump org.sonarsource.scanner.maven:sonar-maven-plugin from 4.0.0.4121 to 5.1.0.4751** https://github.com/liquibase/liquibase-commercial-bigquery/pull/85 by @dependabot
- chore(deps-dev): **bump junit-platform.version from 1.11.3 to 1.12.2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/97 by @dependabot
- chore(deps): **bump actions/create-github-app-token from 1 to 2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/92 by @dependabot
- chore(deps): **bump org.apache.maven.surefire:surefire-junit-platform from 3.5.2 to 3.5.3** https://github.com/liquibase/liquibase-commercial-bigquery/pull/99 by @dependabot
- chore(deps-dev): **bump junit.version from 5.11.4 to 5.12.2** https://github.com/liquibase/liquibase-commercial-bigquery/pull/98 by @dependabot


## Community PRs

### New Features
- (#7059) Java 24 core build support @filipelautert
- (#7046) feat: add rawDateValue field to store unprocessed date input in ColumnConfig @filipelautert
- (#7036) Complain and throw an exception when multiple header lines are found in a formatted SQL changelog DAT-20244 @wwillard7800
- (#6987) Added reportsEnabled property for Maven plugin @wwillard7800 DAT-20185
- (#7031) Added property for disabling command tests at runtime @wwillard7800
- (#6840) Comments field from CreateProcedure change renamed to 'comment' @MalloD12
- (#6916) Added new argument to AbstractFormattedChangeLogParser.handleAdditionalLines method @wwillard7800
- (#7032) Refactor: last-wins local parameters search in changeLog hierarchy by @boolivar
- (#7017) Allow showSqlWarnings message to be overridden in JdbcExecutor [DAT-20202] by @wwillard7800
- (#6990) Add application name to JDBC properties for Snowflake [DAT-20202] by @wwillard7800
- (#7071) Pass the database instance in scope when parsing the changelog [DAT-20378]by @wwillard7800
- (#7063) do not count DBCL queries in rows affected message [DAT-20282] by @StevenMassaro
- (#7065) Added default implementation of getVisibleUrl to DatabaseConnection to be used when the URL gets displayed by @wwillard7800
- (#7053) Do not show output file saved message unless exit code is 0 by @wwillard7800
- (#6995) feat(DEVX-12): Removal of liquibase-cdi and liquibase-cdi-jakarta modules @filipelautert

### Bug Fixes
- (#7062) Fix issue in DBMS skip check that caused a regression @wwillard7800
- (#7048) Do not reset the change set execType when looping through the changes @wwillard7800
- (#7049) fix: resolve inconsistency in StandardLockService by ensuring table snapshot is validated before processing changes @filipelautert
- (#6827) Error handling support added to prevent XML changelog format having other than databaseChangeLog tag as the root element @MalloD12
- (#7001) Restore UniqueConstraintExistsPrecondition logic Github issue 6984 @wwillard7800
- (#6844) Exclude static fields from changelog serialization @evilbc
- (#7002) fix: improve URI normalization logic for resource paths inside jars @filipelautert
- (#6986) only destroy lock service if drop-all succeeds (DAT-13088) @StevenMassaro
- (#6925) Fix for YAML changelogs with many references to be parsed successfully with snakeyaml @MalloD12
- (#7056) fix: update snapshot logic to handle null snapshot returns by @filipelautert
- (#7085) fix: do not snapshot index type for cockroach DB as indexes behave different on this database and we don't know where to find it. by @filipelautert
- (#7062) Fix issue in DBMS skip check that caused a regression by @wwillard7800
- (#7069) Handle situation where DBCL presence was not detected due to permissions [DAT-20314] by @wwillard7800

### Security, Driver and Other Updates
- (#7038) chore(deps-dev): bump org.xerial:sqlite-jdbc from 3.49.1.0 to 3.50.1.0 @dependabot
- (#6997) - chore(deps): bump org.testcontainers:testcontainers-bom from 1.21.0 to 1.21.1 @dependabot
- (#7040) chore(deps-dev): bump org.postgresql:postgresql from 42.7.5 to 42.7.7 in /liquibase-dist @dependabot
- (#7082) - chore(deps): bump org.apache.maven.plugins:maven-enforcer-plugin from 3.5.0 to 3.6.0 by @dependabot
- (#7068) - chore(deps): bump org.junit.jupiter:junit-jupiter from 5.12.2 to 5.13.2 by @dependabot
- (#7067) - chore(deps): bump org.junit.platform:junit-platform-suite from 1.11.4 to 1.13.2 by @dependabot
- (#7066) - chore(deps): bump junit-jupiter.version from 5.12.2 to 5.13.2 by @dependabot
- (#7064) chore(deps-dev): bump com.microsoft.sqlserver:mssql-jdbc from 12.10.0.jre8 to 12.10.1.jre8 by @dependabot
- (#7073) chore(deps-dev): bump org.xerial:sqlite-jdbc from 3.50.1.0 to 3.50.2.0 by @dependabot
- (#7061) - chore(deps): bump com.opencsv:opencsv from 5.11 to 5.11.2 by @dependabot
- (#7060) - chore(deps): bump org.codehaus.mojo:flatten-maven-plugin from 1.7.0 to 1.7.1 by @dependabot
- (#7072) - chore(deps): bump org.testcontainers:testcontainers-bom from 1.21.1 to 1.21.3 by @dependabot
- (#7026) - chore(deps): bump targetMavenVersion from 3.9.9 to 3.9.10 by @dependabot
- (#7075) chore(deps-dev): bump org.mariadb.jdbc:mariadb-java-client from 3.5.3 to 3.5.4 by @dependabot
- (#7023) - chore(deps): bump org.codehaus.mojo:build-helper-maven-plugin from 3.6.0 to 3.6.1 by @dependabot
- (#7022) - chore(deps): bump digicert/ssm-code-signing from 1.0.0 to 1.0.1 by @dependabot
- (#7008) chore(deps-dev): bump net.snowflake:snowflake-jdbc from 3.24.0 to 3.24.2 by @dependabot
- (#7010) chore(deps-dev): bump org.firebirdsql.jdbc:jaybird from 5.0.7.java8 to 5.0.8.java8 by @dependabot
- (#6988) - chore(deps): bump groovy.version from 4.0.26 to 4.0.27 by @dependabot

### Full Changelog: [https://github.com/liquibase/liquibase/compare/v4.32.0...v4.33.0](https://github.com/liquibase/liquibase/compare/v4.32.0...v4.33.0)


Changes in version 4.32.0 (2025.05.21)

## Liquibase 4.32.0 is a major release

See the [Liquibase 4.32.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.32.0.html) for the complete set of release information.

## [PRO] and [Community] Upcoming Change in Distributions
Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its Community and PRO offerings. This change is designed to ensure that each distribution is optimized for its respective users—providing Community users with flexibility and control, while delivering scalability, reliability, and governance for enterprise teams. The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments.
Liquibase 4.32.0 introduces the first general availability (GA) release of independently packaged Pro distributions, along with dedicated distribution channels and key-based access enforcement for Pro capabilities. This marks a significant step toward delivering a curated, enterprise-grade experience for Pro users.
The Community distribution and its delivery channels remain unchanged in this phase.
* Learn more https://docs.liquibase.com/start/install/home.html

## Notable Changes

### [PRO]

#### Example PRO notable change

Policy Checks
Formatted SQL Header Policy Check. Introduced a new policy check named FormattedSqlHeaderRequired to ensure that.sql files included in changelogs begin with the required --liquibase formatted sql header. This check helps prevent improperly formatted SQL changes that could bypass Liquibase’s change tracking, auditing, and rollback features. This new policy check supports changelogs of any format (SQL, XML, YAML, JSON) and includes an EXCEPTIONS_LIST customization option to exclude specific files. When triggered, it lists all offending .sql files missing the required header, helping maintain the integrity and reliability of database change management. [DAT-19042]
Get Config Value Helper Function for Python Checks. Added a new helper function, liquibase_utilities.get_config_value(), for custom Python checks. This function enables easy access to standard Liquibase configuration properties—including those set via environment variables, CLI arguments, or defaults files. This enhancement simplifies scripting by allowing users to retrieve values such as url, loglevel, changelogfile, and custom properties like dbplatform or contexts directly within their Python checks, without manually resolving property names or sources. [DAT-19486]
Property Substitution in Python Check Script Arguments. Enhanced support for custom Python checks by allowing the use of Liquibase properties in the SCRIPT_ARGS section. Users can now reference properties—such as environment variables, CLI arguments, or values from the defaults file—using standard substitution syntax (e.g., ${liquibase.command.url} or ${PIPELINE_NAME}). This enables dynamic and context-aware scripting, such as configuring behavior based on runtime attributes like the current Git branch or target environment. [DAT-19377]
Absolute Path for Custom Python Policy Checks. Updated custom policy check support to allow Python script paths to be specified using absolute paths, in addition to relative paths. This enhancement enables users to store and reference custom check scripts from centralized or shared directories outside the local project repository, eliminating the need to duplicate scripts across multiple projects. This improves flexibility and promotes better reuse and maintenance of custom policy checks across teams and environments. [DAT-19408]

Audit and History
DBCLH History Command for MongoDB and DynamoDB. Added support for the liquibase dbcl-history command for MongoDB and DynamoDB users, enabling access to the DatabaseChangeLogHistory (DBCLH) table. This Liquibase Pro command outputs each DBCLH row as a JSON object, making it easy to integrate with BI and analytics tools. Users can customize output with --format=json|JSON_PRETTY and --verbose to control the level of detail in capturedsql and extensions fields. Output defaults to console but can be redirected to a file using --outputfile. The command is also accessible via the alias liquibase databasechangelog-history. [DAT-17162], [DAT-17164]

Observability and Reports
Drift Report Support for MongoDB Family. Liquibase Pro now supports Drift Report generation for the MongoDB database family, including MongoDB Atlas and AWS DocumentDB. This enhancement allows DevOps and SRE teams to detect schema drift and compare MongoDB instances using the same familiar workflow as relational databases. Drift Reports now include MongoDB-specific snapshot and diff outputs, while omitting or clearly marking relational-only fields as "Not Applicable for Mongo-type Databases." This feature enables consistent configuration checks across distributed NoSQL environments and helps ensure alignment between instances of application data stores. [INT-871]
Enhanced Drift Report Connection Detail. Improved drift reports generated by the liquibase diff command by including complete connection details. Source and target URLs now display full catalog and schema names—particularly valuable for platforms like Databricks—allowing users to accurately identify and distinguish the environments being compared. This enhancement provides greater clarity and helps streamline the process of reviewing and resolving discrepancies. [DAT-18910]
Sensitive SQL Content Suppression in Operational Reports. Added a new global --reports-suppress-sql option to prevent sensitive SQL content—such as passwords—from appearing in operational reports and CLI output (e.g., during update-sql or drift report generation). This setting helps improve security and reduce noise in reports, especially in CI/CD pipelines like Jenkins. When enabled, SQL output is replaced with a placeholder message (SQL suppressed). An optional companion flag, --reports-suppress-exceptions, controls whether SQL appears in error messages. It is automatically set to true when --reports-suppress-sql is enabled, unless explicitly overridden. Both flags are configurable via CLI, environment variables, or properties files. [DAT-19076]

Security
Kerberos Passwordless Authentication for runWith:psql. Liquibase Pro now supports Kerberos passwordless authentication with the runWith:psql native executor, enabling secure, credential-free connections in environments where plain user/password secrets are restricted. This enhancement ensures compatibility with Active Directory/Kerberos authentication workflows while preserving full functionality, including the generation of log spool files as configured in liquibase.psql.conf. Both Kerberos and non-Kerberos environments continue to be supported, ensuring seamless transitions and enhanced security compliance. [DAT-19525]
Simplified Snowflake OAUTH and PKI Authentication Support. Liquibase Pro now supports Snowflake OAUTH and Private Key Infrastructure (PKI) authentication through new dedicated properties, eliminating the need for manual JDBC URL customization in most cases. This enhancement ensures compliance with Snowflake’s upcoming requirement for token-based authentication (effective November 2025) and simplifies secure connectivity for all Snowflake users. Sensitive authentication details—such as tokens, private key paths, and passphrases—can now be provided via Liquibase properties with standard handling for logging and reporting, helping users adopt modern authentication methods with less complexity and greater security.  [INT-190], [INT-182]
Workflow Automation
Conditional Flow File Logic Based on Action Exit Codes. Liquibase Pro now supports conditional flow file logic based on action exit codes, enabling more flexible and resilient automation. A new continueOnError property (default: false) allows flows to proceed even when an individual action fails. Additionally, the new exitCode value captures the exit code of the previous action. This allows users to write conditional logic (e.g., if: "exitCode <= 1") directly within flow files. This enhancement empowers users to handle errors and successes gracefully within a single flow, rather than halting execution entirely. [DAT-19490]

Change Automation
Composite Type Objects in PostgreSQL Support. Liquibase now supports Composite TYPE objects in PostgreSQL, enabling users to manage these objects more effectively. This feature allows users to create and drop Composite Types using Liquibase change types, with support for XML, YAML, and JSON formats. Auto-rollback functionality is also included for these change types, ensuring smooth execution and rollback. This enhancement fills the gap in PostgreSQL object support and provides a valuable tool to manage complex PostgreSQL data types with Liquibase. [INT-173], [INT-175]
PostgreSQL Composite Type Schema Change Support. Liquibase Pro now supports the changeCompositeTypeSchema change type for PostgreSQL, enabling users to manage schema changes for composite Type objects. This enhancement fills a gap in Postgres object support by allowing ALTER operations to move a Type between schemas. The change type is available in all modeled formats (XML, YAML, JSON) and includes auto-rollback functionality. [INT-1268]
PostgreSQL Composite Type Ownership Change Support. Liquibase Pro now supports altering the ownership of Composite Type objects in PostgreSQL through a new changeCompositeTypeOwner change type. This feature allows users to manage ownership changes using modeled formats (XML, YAML, and JSON), expanding Liquibase’s support for advanced PostgreSQL object types. Auto-rollback is not supported because the current owner cannot be determined. [INT-1266]
PostgreSQL Composite Type Rename Support. Liquibase Pro now supports renaming PostgreSQL Composite Type objects using a new renameCompositeType change type. This enhancement enables users to manage changes to complex data structures more effectively by allowing type renaming via modeled formats (XML, YAML, and JSON). Auto-rollback is fully supported, ensuring safe and reversible changes. [INT-1267]
Optional Primary Key Support for DBCL Table in MySQL. Liquibase Pro now includes a configurable property, --mysql-enable-dbcl-primary-key to optionally add a primary key to the DATABASECHANGELOG (DBCL) table during initial creation in MySQL databases. When the toggle is enabled, Liquibase will create the DBCL table with a primary key if it does not already exist. If the DBCL table exists without the key, Liquibase halts and provides instructions for manual correction. Conversely, if the table already includes the key and the toggle is disabled, Liquibase proceeds with an informational message. This ensures compatibility with replication tools while maintaining operational flexibility. [INT-169], [INT-170]
Other Updates
Anonymous Analytics (New Pro Distribution Only). Liquibase Pro 4.32.0 updates the default behavior for anonymous usage analytics. Analytics are now enabled by default for new Liquibase Pro distribution users. These analytics help the Liquibase team improve the product by collecting aggregated, non-PII data such as command usage, error rates, database types, Java versions, and Liquibase feature adoption. Analytics are only captured when a command is run, and users can opt in or out at any time using the --analytics-enabled global parameter. This allows organizations to maintain control over data sharing in alignment with internal policies.
Liquibase Pro Software Bill of Materials (New Pro Distribution Only). Liquibase Pro introduces Liquibase Pro SBOM, machine-readable Software Bill of Materials (SBOM) files bundled with every Liquibase Pro release. Provided in both CycloneDX and SPDX JSON formats, these SBOMs give enterprise teams full transparency into included packages, versions, licenses, dependencies, and checksums—helping meet regulatory compliance (e.g., EO 14028, FedRAMP, SOC 2), support vendor risk reviews, and streamline audits. No extra setup or CLI steps are required—SBOMs are automatically included with each release, ensuring teams stay secure and audit-ready by default. [DAT-20209]

### [Community]

#### Community Notable Changes

NoSql Snapshot improvements. The previous snapshot capability allowed only one Generator as top level for the chain. With this release, the chain handler has been enhanced to ensure all subscribed generators are called. (#5775)
Snowflake timestamp improvements. This release fixes breaks and provides enhanced messaging for time, datetime, and timestamp types (such as `timestamp_ntz`) in Snowflake changesets.  (#6742)

## [PRO] Changelog

### New Features
* [INT-1268] Added support for Composite Type schema change in PostgreSQL in https://github.com/liquibase/liquibase-pro/pull/2263 by @CharlesQueiroz
* [INT-1251] Added MissingCompositeTypeChangeGenerator to enable generate-changelog for CompositeType in https://github.com/liquibase/liquibase-pro/pull/2262 by @SvampX
* [INT-1249] Added snapshot flow for Postgres Composite Type-s in https://github.com/liquibase/liquibase-pro/pull/2242 by @SvampX
* [INT-1267] Added Rename Composite Type change in https://github.com/liquibase/liquibase-pro/pull/2253 by @SvampX
* [INT-1266] Added ChangeCompositeTypeOwner changeType support in https://github.com/liquibase/liquibase-pro/pull/2246 by @KushnirykOleh
* [INT-175] Added DropCompositeType related files and tests in https://github.com/liquibase/liquibase-pro/pull/2236 by @SvampX
* [INT-169] Added `mysql-enable-dbcl-primary-key` config for MySQL DBCL composite PK feature in https://github.com/liquibase/liquibase-pro/pull/2233 by @SvampX
* [INT-173] Added basic support for Postgres createCompositeType and tests in https://github.com/liquibase/liquibase-pro/pull/2235 by @KushnirykOleh
* [INT-170] Added composite primary key for MySQL DBCL table in https://github.com/liquibase/liquibase-pro/pull/2232 by @SvampX
* [DAT-19753] Tweaked message to mention both S3 and Azure in https://github.com/liquibase/liquibase-pro/pull/2196 by @wwillard7800
* [DAT-19430] Added check for existence of the Azure extension JAR in https://github.com/liquibase/liquibase-pro/pull/2135 by @wwillard7800
* [DAT-19490] Added continueOnError to flow actions. Expose exitCode (and statusCode) variables in flow conditions in https://github.com/liquibase/liquibase-pro/pull/2139 by @abrackx
* [DAT-19525] Implemented Postgres Kerberos support in https://github.com/liquibase/liquibase-pro/pull/2216 by @wwillard7800
* [DAT-18862] Changes for enhanced line identification in https://github.com/liquibase/liquibase-pro/pull/2131 by @wwillard7800
* [DAT-19407] Show standard message when flow contains a checks command without extension in https://github.com/liquibase/liquibase-pro/pull/2121 by @wwillard7800
* [DAT-18910] Added title tag to drift report url that includes full database url in https://github.com/liquibase/liquibase-pro/pull/2123 by @abrackx
* INT-871 [DAT-19563] Adjustments to enable mongo commercial extensions drift report in https://github.com/liquibase/liquibase-pro/pull/2192 by @SvampX
* INT-190 [DAT-19778] Added Snowflake PKI flow within liquibase PRO in https://github.com/liquibase/liquibase-pro/pull/2203 by @SvampX
* [DAT-19042] Added new FormattedSqlHeaderRequired check in https://github.com/liquibase/liquibase-checks/pull/190 by @wwillard7800
* [DAT-1269] Added support for RenameCompositeTypeAttribute changeType in https://github.com/liquibase/liquibase-pro/pull/2254 by @KushnirykOleh
* [DAT-19486]  Added new Python helper function to access configuration values directly in Python script in https://github.com/liquibase/liquibase-checks/pull/185 by @wwillard7800
* [DAT-19377]  Allowed properties in script arguments #179 in https://github.com/liquibase/liquibase-checks/pull/179 by @wwillard7800
* [DAT-19408]  Added support for specifying the full path to the Python script in https://github.com/liquibase/liquibase-checks/pull/193 by @wwillard7800
* [DAT-17162]  Refactored dbcl-history to allow for custom subclasses in https://github.com/liquibase/liquibase-pro/pull/2132 by @StevenMassaro
* [DAT-17164]  Refactored loading dbcl-history entries into history service in https://github.com/liquibase/liquibase-pro/pull/2126 by @StevenMassaro
* [DAT-19076]  Replaced report message when a check can report generated sql or exception and the suppress-sql or suppress-exception flag is set in https://github.com/liquibase/liquibase-checks/pull/183 by @abrackx
* [DAT-20088] Fixes to handle 1.8 source level in https://github.com/liquibase/liquibase-checks/pull/213 by @wwillard7800
* [DAT-19331]: add type to default columns for checks show output in https://github.com/liquibase/liquibase-checks/pull/151 by @StevenMassaro
* [DAT-20209]: Include liquibase-pro SBOM in new Pro distribution in https://github.com/liquibase/liquibase-checks/pull/2350 by @jnewton03

### Bug Fixes
* [DAT-19752] fix creating flow files at S3/Azure bucket roots in https://github.com/liquibase/liquibase-pro/pull/2240 by @StevenMassaro
* [DAT-19045] fix string wrapping when it contains newlines in https://github.com/liquibase/liquibase-pro/pull/2104 by @StevenMassaro
* [DAT-19432] Do not fail rollback-one-update when there is a tag dbcl record in the deployment group in https://github.com/liquibase/liquibase-pro/pull/2176 by @abrackx
* [DAT-19983] Fix report issue with string replacement in https://github.com/liquibase/liquibase-pro/pull/2229 by @wwillard7800
* [DAT-19702] Fix report code and tests in https://github.com/liquibase/liquibase-pro/pull/2197 by @wwillard7800
* [DAT-19220] Fix test for new ignore missing objects configuration property in https://github.com/liquibase/liquibase-pro/pull/2115 by @wwillard7800
* [DAT-19005] Fix help in https://github.com/liquibase/liquibase-pro/pull/2118 by @wwillard7800
* [DAT-19135] If the user has specified WHENEVER SQLERROR EXIT SUCCESS, and SQLPLUS returns an exit code of 0, then ignore any SP* errors and treat the execution as a success in https://github.com/liquibase/liquibase-pro/pull/2134 by @wwillard7800
* [DAT-19381] support @ symbol in password for psql in https://github.com/liquibase/liquibase-pro/pull/2112 by @StevenMassaro
* [DAT-19258] Handle @ symbol in username for PostgreSQL in https://github.com/liquibase/liquibase-pro/pull/2113 by @wwillard7800
* [DAT-19135] If the user has specified WHENEVER SQLERROR EXIT SUCCESS, and SQLPLUS returns an exit code of 0, then ignore any SP* errors and treat the execution as a success in https://github.com/liquibase/liquibase-pro/pull/2134 by @wwillard7800
* [DAT-19423] Sanitize display db urls in drift reports in https://github.com/liquibase/liquibase-pro/pull/2127 by @abrackx
* [DAT-19063] Handle presence of "url" in arg value during obfuscation in https://github.com/liquibase/liquibase-pro/pull/2160 by @wwillard7800
* [DAT-18249] output labels and contexts when running diff changelog with sprocs in https://github.com/liquibase/liquibase-pro/pull/2223 by @StevenMassaro
* [DAT-19701] drop Postgres functions without using default values for arguments in https://github.com/liquibase/liquibase-pro/pull/2193 by @StevenMassaro
* [DAT-19951]: use default filename in error message if filename not specified in https://github.com/liquibase/liquibase-checks/pull/210 by @StevenMassaro
* [DAT-19880] Fix issue where non-custom checks were not running if custom checks were turned off in https://github.com/liquibase/liquibase-checks/pull/205 by @wwillard7800
* [DAT-19781] Modified message dealing with non-existent checks settings file in https://github.com/liquibase/liquibase-checks/pull/203 by @wwillard7800
* [DAT-19387]: Do not match on USE ROLE etc in WarnOnUseDatabase check. in https://github.com/liquibase/liquibase-checks/pull/187 by @abrackx
* [DAT-18954]: avoid spurious log message for checksScriptsEnabled param in https://github.com/liquibase/liquibase-checks/pull/184 by @StevenMassaro
* [DAT-19008] Handle truncate table statement when not on first line of SQL in https://github.com/liquibase/liquibase-checks/pull/162 by @wwillard7800
* [DAT-17317] Correctly pass rollback flag to the output code in https://github.com/liquibase/liquibase-checks/pull/176 by @wwillard7800
* [DAT-19285]: Check if Dynamo classes are present before allowing customization of dynamo checks. in https://github.com/liquibase/liquibase-checks/pull/158 by @abrackx
* [DAT-19236]: Add plugin to set year in report in https://github.com/liquibase/liquibase-checks/pull/159 by @abrackx
* [DAT-19327]: Do not trigger max affected checks if sql contains "ON <dmlPrefix>" in https://github.com/liquibase/liquibase-checks/pull/157 by @abrackx
* [DAT-19235] Report fixes for column headers in https://github.com/liquibase/liquibase-checks/pull/153 by @wwillard7800
* [DAT-19045]: fix line breaks in checks run report in https://github.com/liquibase/liquibase-checks/pull/154  by @StevenMassaro
* [DAT-19276]: don't require database connection unless it is needed in https://github.com/liquibase/liquibase-checks/pull/152 by @StevenMassaro
* fix mismatched versions across poms in https://github.com/liquibase/liquibase-checks/pull/189](https://github.com/liquibase/liquibase-checks/pull/189) by @StevenMassaro
* Fix issue where message about not locating custom script displayed always, ignore local YAML test config, added MySQL driver in https://github.com/liquibase/liquibase-checks/pull/204](https://github.com/liquibase/liquibase-checks/pull/204) by @wwillard7800

### Security, Driver and Other Updates
* Bump net.snowflake:snowflake-jdbc from 3.23.1 to 3.23.2 in https://github.com/liquibase/liquibase-pro/pull/2221 by @dependabot
* Bump net.snowflake:snowflake-jdbc from 3.22.0 to 3.23.1 in https://github.com/liquibase/liquibase-pro/pull/2182 by @dependabot
* Bump org.jacoco:jacoco-maven-plugin from 0.8.12 to 0.8.13 in https://github.com/liquibase/liquibase-pro/pull/2217 by @dependabot
* Bump net.snowflake:snowflake-jdbc from 3.21.0 to 3.22.0 in https://github.com/liquibase/liquibase-pro/pull/2133 by @dependabot
* Bump actions/upload-artifact from 3 to 4 in https://github.com/liquibase/liquibase-pro/pull/1550 by @dependabot
* Bump org.yaml\:snakeyaml from 2.2 to 2.4 in https://github.com/liquibase/liquibase-checks/pull/199](https://github.com/liquibase/liquibase-checks/pull/199) by @dependabot bot
* Bump Liquibase version in https://github.com/liquibase/liquibase-checks/pull/169](https://github.com/liquibase/liquibase-checks/pull/169) by @sayaliM0412
* Bump Liquibase version in https://github.com/liquibase/liquibase-checks/pull/165](https://github.com/liquibase/liquibase-checks/pull/165) by @filipelautert
* Bump org.apache.groovy\:groovy-jsr223 from 4.0.22 to 4.0.26 in https://github.com/liquibase/liquibase-checks/pull/196](https://github.com/liquibase/liquibase-checks/pull/196) by @dependabot bot
* Bump org.apache.maven.plugins\:maven-surefire-plugin from 3.2.5 to 3.5.2 in https://github.com/liquibase/liquibase-checks/pull/164](https://github.com/liquibase/liquibase-checks/pull/164) by @dependabot bot


## [Community] Changelog

### New Features
- (#6921) INT-1249: refactored StringSnapshotSerializerReadable to be able to extend expandable and skipped object types from Pro and Extensions. @SvampX
- (#6899) feat: Improve Command Definition Internal Status Inheritance @filipelautert
- (#6905) feat: Rename misleading update methods in Liquibase class @filipelautert
- (#6866) feat: add support for default value sequence next to hsqldb @filipelautert
- (#6798) Database support custom method `escapeForLike` @ThisOldDog
- (#6898) INT-170: extracted getCreateTableStatement in separate method to enable composite PK for MySQL DBCL table. @SvampX
- (#6807) [DAT-19654] made fields in AbstractFormattedChangeLogParser constants to reuse in util classes @KushnirykOleh
- (#6693) add maven profile to build minimal distributions (DAT-19476) @StevenMassaro
- (#6835) feat: new tagDatabase parameter to keep tag on rollback @filipelautert
- (#5775) feat: improve snapshot generation for NOSQL databases @filipelautert
- (#6694) Show message and exit if user attempts to use Azure without extension DAT-19430 @wwillard7800
- (#6801) reduce number of API calls for analytics by caching events (DAT-19789) @StevenMassaro
- (#6806) [DAT-19691] Code refactorings to fix sonar issues @MalloD12
- (#6781) [DAT-18971] gzip log files if log-file parameter ends in .gz @StevenMassaro
- (#6744) 6743: support the Arabic character "Kasra" @Eraoui909
- (#6774) Use hasIgnoreNested method for all database preconditions @wwillard7800
- (#6780) Added method to return the original path for a Resource @wwillard7800
- (#6679) Improves MDC logging by database-specific command formatting @CharlesQueiroz
- (#6706) Only report rows affected for DML statements @wwillard7800
- (#6710) Handle changes skipped due to OS mismatch DAT-19334 @wwillard7800

### Bug Fixes
- (#6900) INT-185 - Solving the situation where the customer tries to connect t @CharlesQueiroz
- (#6838) Upon Evaluation of changeLogPropertyDefinied precondition also include local properties of nested changesets. @2fxprogeeme
- (#6875) Fix Oracle regression from splitStatements:false change DAT-19983 @wwillard7800
- (#6872) fix: change String[] to List\<String> in COMMAND\_DEFINITIONS cache @FatovDI
- (#6860) fix: Prevent duplicate entries in databasechangelog with runAlways and onFail="MARK\_RAN" @filipelautert
- (#6867) fix: resource path resolution inside JAR files @filipelautert
- (#6869) Test fixes for path issue @wwillard7800
- (#6833) Default splitStatements to false for formatted SQL generation DAT-19702 @wwillard7800
- (#6808) Date with timezone formats added. @MalloD12
- (#6800) Pass CHANGELOG ARG to scope of changelogSync command @fido-node
- (#6755) Fix handling of PostgreSQL uppercase catalog names after v42.7.5 driver changes @MalloD12
- (#6830) fix: exclude duplicated dependencies provided by opencsv @filipelautert
- (#6826) fix #5197: Ensure contexts from properties object are not ignored @filipelautert
- (#6825) fix multiline select statements in execute-sql (DAT-19722) @StevenMassaro
- (#6818) excluded junit from commons-collections4 @KushnirykOleh
- (#6795) re-add headers to -sql commands (DAT-18306) @StevenMassaro
- (#6806) DAT-19691 :: Code refactorings to fix sonar issues @MalloD12
- (#6802) Fix snapshot for MSSQL decimal sequences (DAT-19504) @abrackx
- (#6787) For SQL Server, sync up the backing index for PK and UC to the one that is auto-generated DAT-19267 @wwillard7800
- (#6793) fix: classpath expression should also work when it is separated by an empty space instead of an = @filipelautert
- (#6745) Fix foreignKeyConstraintExists precondition when constraint already exists in the DB @MalloD12
- (#6753) fix liquibase-cli dependencies when deploying to Maven Central @filipelautert
- (#6764) Do not include size on user defined types (DAT-19150) @abrackx
- (#6596) Make the logChannels property work DAT-19296 @wwillard7800
- (#6752) Fix LoadData issues for CLOB Values Containing Invalid File Path Characters @filipelautert
- (#6674) Fix concurrency issues in multithread environments @filipelautert
- (#6751) avoid NPE when analytics config issue occurs (DAT-19472) @StevenMassaro
- (#6770) Revert weld-se-core upgrade @abrackx
- (#6727) improve/fix snowflake view generation SQL @filipelautert
- (#6750) DAT-18499 Log level changed when specifying driver on the CLI @MalloD12
- (#6560) Add DiffOutputControl support for specifying a data directory argument @MalloD12
- (#6692) Snapshot all configuration values for Oracle sequences @marchof
- (#6663) Close ResultSet to prevent leaking it @ahus1

### Security, Driver and Other Updates
- (#6928) chore(deps): bump com.opencsv:opencsv from 5.10 to 5.11 by @dependabot
- (#6857) chore(deps): bump org.projectlombok:lombok from 1.18.36 to 1.18.38 by @dependabot
- (#6747) chore(deps-dev): bump org.jboss.weld.se:weld-se-core from 5.1.3.Final to 6.0.1.Final by @dependabot
- (#6741) Fix/generate-oss-pro-sbom-reports @sayaliM0412

Changes in version 4.31.1 (2025.02.13)

### Liquibase 4.31.1 is a patch release

> [!IMPORTANT]
> Liquibase 4.31.1 patches vulnerability found in Snowlake driver (CVE-2025-24789) and resolves issue with include and logicalfilepath reported in 4.31.0 (see 4.31.0 Release Notes)

> [!NOTE]
> See the [Liquibase 4.31.1 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.31.1.html) for the complete set of release information.

## Notable Changes
### [Community]

#### logicalfilepath bug: in 4.31.0, the parent logicalfilepath value will be used in DBCL/DBCLH as the changelogfilepath value, as a result the changesets from the included changelogs that were deployed with the changelog level logicalFilePath in version 4.31.0 will be considered new and will be redeployed in the latest versions. 4.31.1 fixes this behavior and deployed changesets will not be redeployed.

### [PRO] Changelog

## [PRO] Bug Fixes
* DAT-19579: The changesets from the included changelogs that were deployed with the changelog level logicalFilePath in version 4.31.0 will be considered new and will be redeployed in the latest versions https://github.com/liquibase/liquibase/pull/6716 @filipelautert

### [Community] Changelog

## [Community] Bug Fixes
* (#6664) Don't ignore logicalFilePath when including changelogs @filipelautert
* (#6716) fix filename in dbcl incorrectly generated during 4.31.0 (#6712) @filipelautert

## [Community] Security, Driver and Other Updates

#### Snowflake vulnerability update CVE-2025-24789
* Snowflake discovered and remediated a vulnerability in the Snowflake JDBC Driver. Liquibase now includes a version with the fixed issue 3.22.0.


Changes in version 4.31.0 (2025.01.16)

### Liquibase 4.31.0 is a major release

> [!NOTE]
> See the [Liquibase 4.31.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.31.0.html) for the complete set of release information.


### [PRO] Changelog

## New Features
* DAT-19388 [DevOps] Fix terraform executable in GH in https://github.com/liquibase/liquibase-pro/pull/2109 by @jandroav
* DAT-18519: Reverting cloneTable generic changeType in https://github.com/liquibase/liquibase-pro/pull/2068 by @SvampX
* DAT-19302: combined dependabot PRs in https://github.com/liquibase/liquibase-pro/pull/2093 by @StevenMassaro
* feat: light build script to be triggered by liquibase oss builds in https://github.com/liquibase/liquibase-pro/pull/2082 by @filipelautert
* DAT-19268 Remove stubs and test associated test files in https://github.com/liquibase/liquibase-pro/pull/2083 by @wwillard7800
* DAT-19242: Update error messaging for stub checks commands in https://github.com/liquibase/liquibase-pro/pull/2081 by @abrackx
* DAT-19049 Complete work to move all checks-related code to a new extension in https://github.com/liquibase/liquibase-pro/pull/2066 by @wwillard7800
* DAT-19000: added 'cloneTable' changetype with no supported databases in https://github.com/liquibase/liquibase-pro/pull/2064 by @SvampX
* DAT-17940: optionally suppress SQL in reports in https://github.com/liquibase/liquibase-pro/pull/2036 by @StevenMassaro
* add PRO_LICENSE_KEY to liquibase-aws-extension in https://github.com/liquibase/liquibase-pro/pull/2058 by @sayaliM0412
* DAT-18892: create checks show files without prompting in https://github.com/liquibase/liquibase-pro/pull/2050 by @StevenMassaro
* DAT-18129: update checks run output for checks that are disabled but requested to be run in https://github.com/liquibase/liquibase-pro/pull/2049 by @StevenMassaro
* DAT-18777 Add a snippet of the matching SQL to the console output in https://github.com/liquibase/liquibase-pro/pull/2020 by @wwillard7800
* DAT-18868: Include successful checks in checks run report "Details by Check" section in https://github.com/liquibase/liquibase-pro/pull/2048 by @abrackx
* DAT-17901 Pass the database instance in the scope for changelog parsing in https://github.com/liquibase/liquibase-pro/pull/2042 by @wwillard7800
* DAT-18780: Add messaging for scripts that cannot execute when using MaxAffected checks in https://github.com/liquibase/liquibase-pro/pull/2039 by @abrackx
* DAT-18793: replace slf4j-simple with slf4j-nop in https://github.com/liquibase/liquibase-pro/pull/2038 by @StevenMassaro
* [PRO license rotation] Fixed typo for yugabyte repo in https://github.com/liquibase/liquibase-pro/pull/2047 by @jandroav
* DAT-18836 - CPC: database scope checks should not ask "requires snapshot" in https://github.com/liquibase/liquibase-pro/pull/2041 by @filipelautert
* DAT-15504: Migrate init project to core in https://github.com/liquibase/liquibase-pro/pull/2004 by @abrackx
* DAT-18328 Update to match core for stripComments in modifyChangeSets in https://github.com/liquibase/liquibase-pro/pull/1981 by @wwillard7800
* DAT-18841 Do not prompt for script type with CPC in https://github.com/liquibase/liquibase-pro/pull/2027 by @wwillard7800
* DAT-10610 Added a flag to help trim down exception logging in https://github.com/liquibase/liquibase-pro/pull/1997 by @wwillard7800


## Bug Fixes
* DAT-19045: fix string wrapping when it contains newlines in https://github.com/liquibase/liquibase-pro/pull/2104 by @StevenMassaro
* DAT-19241 Help fixes for the stubs in https://github.com/liquibase/liquibase-pro/pull/2077 by @wwillard7800
* DAT-18842 Fix issue where we were passing the wrong argument to the executor in https://github.com/liquibase/liquibase-pro/pull/2006 by @wwillard7800


## Security, Driver and Other Updates
* Bump actions/setup-python from 5.1.0 to 5.3.0 in https://github.com/liquibase/liquibase-pro/pull/2008 by @dependabot bot
* Bump com.github.jsqlparser:jsqlparser from 4.9 to 5.0 in https://github.com/liquibase/liquibase-pro/pull/1866 by @dependabot bot
* Revert "Bump com.github.jsqlparser:jsqlparser from 4.9 to 5.0" in https://github.com/liquibase/liquibase-pro/pull/2044 by @StevenMassaro


### [Community] Changelog

## New Features

- (#6371) Implement logic to selectively include/exclude columns in generate-changelog "data" export (Issue #3371, #6310) @catull
- (#6498) Change automated release file version to `main` by @tati-qalified
- (#6415) Add flag to top-level `Scope` to suppress logging of exceptions in certain cases by @wwillard7800
- (#6472) Fail validation for blank changeset IDs (DAT-18773) by @abrackx
- (#6381) Add `stripComments` attribute to `modifyChangeSets` (DAT-18328) by @wwillard7800
- (#6451) Migrate `init project` command to core (DAT-15504) by @abrackx
- (#6515) Recognize `isIO` environment variable for analytics (DAT-18906) by @StevenMassaro
- (#6509) Replace `slf4j-simple` with `slf4j-nop` (DAT-18793) by @StevenMassaro
- (#6373) Report which `codePoint` is illegal for XML data export by @catull
- (#6512) Liquibase API: Add missing `changeLogParameters` argument by @MalloD12
- (#6436) Check if the next character is out of string length by @fntz
- (#6494) Make changelog and changeset logical file path settings override `includeAll` setting (Issue #6493) by @wwillard7800
- (#6511) SQLFile: Add DBMS validation check by @MalloD12
- (#6528) Revert refactoring that broke structured logging by @StevenMassaro
- (#6516) Add new properties to Spring configuration (analytics enabled and pro license) by @filipelautert
- (#6553) Add `liquibase-checks` property by @wwillard7800
- (#6529) Do not propagate logical file path to included changesets from raw SQL changelogs (DAT-19040) by @wwillard7800
- (#6499) Optionally suppress SQL in reports (DAT-17940) by @StevenMassaro
- (#6557) Avoid retrieving ran changesets without a database connection (DAT-19095) by @wwillard7800
- (#6378) Ensure `GenerateChangelogCommandStep` only reports writing a changelog file if it actually did by @catull
- (#6555) Generate zip file via Maven, add zip and tar integration tests (DAT-18855) by @abrackx
- (#6254) Output calculated checksum to `stdout` by @Ishad-M-I-M
- (#6556) Enhance history command to filter changesets by tags (DAT-19013) by @filipelautert
- (#6565) Update changeset execution time to follow better practices by @jasonlyle88
- (#6536) Implement `copy` method in `FilesystemProjectCopier` (DAT-18890) by @abrackx
- (#6328) Add `stub` attribute to `CommandStep` interface to recognize stub commands by @wwillard7800
- (#6558) Handle duplicates in sub-commands with stub method (DAT-19049) by @wwillard7800
- (#6575) Add flag to turn off compatibility check for `liquibase-checks` in `dropAll` by @wwillard7800
- (#5653) Deployment ID enhancements and execution property by @jasonlyle88
- (#6570) Recognize flag to prevent exceptions for unsupported change types (DAT-19074) by @wwillard7800
- (#6591) Remove stubs; now trap checks command in `Main` (DAT-19268) by @wwillard7800
- (#6572) Ignore individual AWS extension jars if combined jar is present (DAT-19091) by @StevenMassaro
- (#6593) Expire analytics cache after 60 minutes (DAT-19278) by @StevenMassaro
- (#6597) Handle absence or older version of `checks` JAR (DAT-19289) by @wwillard7800
- (#6371) Selectively include/exclude columns in `generate-changelog` data export (Issue #3371, #6310) by @catull
- (#6630) Handle @ symbol when executing PostgreSQL SET SEARCH_PATH @wwillard7800


## Bug Fixes
- (#6628) liquibase-maven-plugin: Allow null arguments to ConfiguredValueModifierFactory.override(String) @facboy
- (#6540) Fix null value handling when loading resources @sapo-di
- (#6621) DAT-19082: Fix issue with losing changed datatype attributes when one datatype is an int and the other is not @abrackx
- (#6540) Fix null value handling when loading resources @sapo-di
- (#6439) Fix issue with fail on error changeset accounting by @wwillard7800
- (#6535) Fix only set Spring analytics scope parameter if it's defined by @filipelautert
- (#6542) Fix always set column properties before calculating checksum by @filipelautert
- (#6523) Fix Sequence generator - cache size, data type - for various DBs by @Alienmario
- (#6469) Fix README workflow status by @abrackx
- (#6571) Fix breaking changes introduced in #6565 by @StevenMassaro
- (#6524) Fix NetUtilTest when dealing with IPv4/IPv6 addresses by @MalloD12
- (#6495) Fix Maven issue that produces an exception when it finds a .pom file. by @wwillard7800
- (#6453) Fix FormattedSqlChangeLogSerializer so it includes logicalFilePath in change-set info comments by @benjamin-bader
- (#6405) Fix ignore int sizes when diffing MSSQL by @filipelautert
- (#6492) Fix (DAT-18813): classloader configuration in LiquibaseCommandLine by @filipelautert
- (#6343) Fix #6342 - Liquibase Output changeset executes twice by @jasonlyle88
- (#6519) Fix the XSD adding the nullPlaceholder attribute for loadData column by @davidecavestro
- (#6578) Fix fossa ai execution for contributed PRs by @filipelautert
- (#6590) Fix Checksum for SQL changes containing dbms attributes can get different values if md5sum column is null by @filipelautert
- (#6540) Fix null value handling when loading resources by @sapo-di
- (#6621) Fix issue with losing changed datatype attributes when one datatype is an int and the other is not (DAT-19082) by @abrackx


## Security, Driver and Other Updates

- (#6626) DAT-18331 PRO: integrate checks extension into tarball/zip, not mac os dmg installer @jandroav
- (#6582) Bump org.junit.platform:junit-platform-suite from 1.11.3 to 1.11.4 @dependabot
- (#6433) Bump org.firebirdsql.jdbc:jaybird from 5.0.5.java8 to 5.0.6.java8 by @dependabot
- (#6477) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.1 to 3.11.1 by @dependabot
- (#6468) Bump wangyucode/sftp-upload-action from 2.0.2 to 2.0.3 by @dependabot
- (#6467) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.15.0 to 3.15.1 by @dependabot
- (#6460) Bump actions/setup-python from 5.2.0 to 5.3.0 by @dependabot
- (#6455) Bump org.nanohttpd:nanohttpd from 2.2.0 to 2.3.1 by @dependabot
- (#6448) Bump org.testcontainers:testcontainers-bom from 1.20.2 to 1.20.3 by @dependabot
- (#6449) Bump actions/cache from 4.1.1 to 4.1.2 by @dependabot
- (#6479) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.1 to 3.5.2 by @dependabot
- (#6478) Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.1 to 3.5.2 by @dependabot
- (#6500) Bump groovy.version from 4.0.23 to 4.0.24 by @dependabot
- (#6454) Bump org.xerial:sqlite-jdbc from 3.46.1.3 to 3.47.0.0 by @dependabot
- (#6480) Bump org.hsqldb:hsqldb from 2.7.3 to 2.7.4 by @dependabot
- (#6475) Bump net.snowflake:snowflake-jdbc from 3.16.1 to 3.20.0 by @dependabot
- (#6496) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 4.0.0.4121 to 5.0.0.4389 by @dependabot
- (#6522) Bump org.projectlombok:lombok from 1.18.34 to 1.18.36 by @dependabot
- (#6531) Bump org.testcontainers:testcontainers-bom from 1.20.3 to 1.20.4 by @dependabot
- (#6527) Bump commons-io:commons-io from 2.17.0 to 2.18.0 by @dependabot
- (#6603) Bump org.liquibase.ext:liquibase-sdk-maven-plugin from 0.10.23 to 0.10.25 by @dependabot
- (#6594) Bump org.assertj:assertj-core from 3.26.3 to 3.27.0 by @dependabot
- (#6584) Bump org.junit.jupiter:junit-jupiter from 5.11.3 to 5.11.4 by @dependabot
- (#6581) Bump junit-jupiter.version from 5.11.3 to 5.11.4 by @dependabot
- (#6577) Bump org.apache.commons:commons-text from 1.12.0 to 1.13.0 by @dependabot
- (#6568) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.1 to 3.11.2 by @dependabot
- (#6561) Bump org.apache.commons:commons-compress from 1.26.2 to 1.27.1 by @dependabot
- (#6614) Bump org.xerial:sqlite-jdbc from 3.47.0.0 to 3.47.2.0 by @dependabot
- (#6582) Bump org.junit.platform:junit-platform-suite from 1.11.3 to 1.11.4 by @dependabot

## New Contributors
* @fntz made their first contribution in https://github.com/liquibase/liquibase/pull/6436
* @benjamin-bader made their first contribution in https://github.com/liquibase/liquibase/pull/6453
* @Ishad-M-I-M made their first contribution in https://github.com/liquibase/liquibase/pull/6254
* @Alienmario made their first contribution in https://github.com/liquibase/liquibase/pull/6523
* @sapo-di made their first contribution in https://github.com/liquibase/liquibase/pull/6540

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.30.0...v4.31.0


Changes in version 4.30.0 (2024.11.05)

### Liquibase 4.30.0 is a major release

> [!IMPORTANT]
> Liquibase 4.30.0 contains new capabilities and notable enhancements for Liquibase Community and Pro users including Anonymous Analytics and deprecation of the MacOS dmg installer.
> [!NOTE]
> See the [Liquibase 4.30.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.30.0.html) for the complete set of release information.

## Notable Changes
### [PRO]

#### Anonymous Analytics:
* Liquibase can now gather anonymous usage analytics when commands are run. No user-specific data will be gathered.

For Liquibase Community users, this functionality is enabled by default, but can be opted-out of before any data is sent. For Liquibase Pro users, this is disabled by default with the ability to opt-in.

Gathering anonymous usage analytics allows us to better understand how Liquibase is actually being used by a very wide, diverse set of millions of users.

* Learn more https://docs.liquibase.com/analytics


#### Flow Enhancements: Detect pending changesets, and variable-variables
* There are two exciting Flow enhancements: the ability to condition action on presence of pending changesets, and the ability to use a global variable inside other global or stage variables, enabling variable-variables within flows.
* Learn more https://docs.liquibase.com/flow


### [Community]

#### Deprecated: MacOS .dmg installer
* The MacOS dmg installer no longer ships with release artifacts. Please use the tar.gz or .zip release artifacts, or install via homebrew by running brew install liquibase



### [PRO] Changelog

## New Features

* DAT-18202 Implement wildcard check name argument for enable/disable in https://github.com/liquibase/liquibase-pro/pull/2000 by @wwillard7800
* DAT-17058: Add analytics in https://github.com/liquibase/liquibase-pro/pull/1995 by @liquibot
* DAT-17568 Added exit command action in https://github.com/liquibase/liquibase-pro/pull/1689 by @wwillard7800
* DAT-18689: Add extra information to failed changesets summary in https://github.com/liquibase/liquibase-pro/pull/1996 by @filipelautert
* DAT-18114 Added more logging for formatted SQL parsing in https://github.com/liquibase/liquibase-pro/pull/1994 by @wwillard7800
* DAT-18455 Add SQL file path to policy checks output in https://github.com/liquibase/liquibase-pro/pull/1944 by @wwillard7800


## Changes

* DAT-17581 Exit with a non-zero if the changelog did not validate in https://github.com/liquibase/liquibase-pro/pull/1870 by @wwillard7800
* DAT-18540 Create new ReportWriter.open(String path) method that default to no-op in https://github.com/liquibase/liquibase-pro/pull/1962 by @wwillard7800
* DAT-18092: Use xdg-open to open reports in browser on linux operating systems in https://github.com/liquibase/liquibase-pro/pull/1948 by @abrackx
* DAT-18531 Clear out DBCL fast check cache before each Flow action in https://github.com/liquibase/liquibase-pro/pull/1933 by @wwillard7800
* DAT-18362 Handle comments when parsing include/includeAll statements in https://github.com/liquibase/liquibase-pro/pull/1959 by @wwillard7800
* DAT-18463 Implement a class to be used to capture the start/end positions of a regex check for line number output in https://github.com/liquibase/liquibase-pro/pull/1979 by @wwillard7800
* DAT-18869: Obfuscate IO arguments in https://github.com/liquibase/liquibase-pro/pull/1999 by @abrackx



## [PRO] Bug Fixes

* DAT-18819: Fix dropall behavior with snowflake in https://github.com/liquibase/liquibase-pro/pull/1987 by @abrackx
* DAT-18517 Handle expansion of variables when default values are involved in https://github.com/liquibase/liquibase-pro/pull/1969 by @wwillard7800
* DAT-18327: improve startup performance in https://github.com/liquibase/liquibase-pro/pull/1972 by @StevenMassaro
* Fix tests to use new CommandFactory.reset() method in https://github.com/liquibase/liquibase-pro/pull/1952 by @wwillard7800



## [PRO] Security, Driver and Other Updates

(#1973) Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.17.2 to 2.18.0 by dependabot
(#1974) Bump com.fasterxml.jackson.core:jackson-annotations from 2.17.2 to 2.18.0 by dependabot
(#1976) Bump com.fasterxml.jackson.core:jackson-databind from 2.17.2 to 2.18.0 by dependabot
(#1975) Bump com.fasterxml.jackson.core:jackson-core from 2.17.2 to 2.18.0 by dependabot
(#1988) Bump org.apache.maven.plugins:maven-failsafe-plugin from 2.22.2 to 3.5.1 by dependabot
(#1991) Bump org.apache.maven.plugins:maven-surefire-plugin from 2.22.2 to 3.5.1 by dependabot
(#2003) Bump org.junit.vintage:junit-vintage-engine from 5.10.3 to 5.11.3 by dependabot
(#2002) Bump org.junit:junit-bom from 5.10.3 to 5.11.3 by dependabot
(#1963) Bump com.networknt:json-schema-validator from 1.5.0 to 1.5.2 by dependabot
(#1947) Bump org.yaml:snakeyaml from 2.2 to 2.3 by dependabot
(#1984) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 1.13.1 to 4.0.1 by dependabot
(#2005) Bump org.nanohttpd:nanohttpd from 2.2.0 to 2.3.1 by dependabot


### [Community] Changelog


## New Features

- (#6414) When using `failOnError=false`, changesets that failed will now show up in the default output. Thanks, @filipelautert
- (#6413)  Ensure all failed changesets show in the exceptionChangesets. Previously, output summaries did not include changesets that failed when running `failOnError=false` (DAT-18689). Thanks, @filipelautert
- (#6169) When using STRICT mode, `update-to-tag` will now throw an error when there is no tag specified or the tag specified does not exist. Thanks, @MalloD12
- (#6410) Modified `clob` handling in `loadData` by checking the string passed to a CLOB type column. Thanks, @tati-qalified
- (#6067) Added additional modes for `duplicateFileMode`. Thanks, @k4pran
- (#6432) Added a `Customizer` that allows discovery of changesets that are not known to an application. This can be used to prevent an application's startup when discovering new, unexpected changesets before an update is made. Thanks, @raphw
- (#6288) Avoid ignoring caught exceptions, and instead return the exception and append the reason for better debugging. Thanks, @asolntsev
- (#6265) Enhanced `include` and `includeAll` to support `logicalFilePath` (DAT-18350). Thanks, @wwillard7800
- (#6300) Added method to reset command definitions cache in CommandFactory for testing. Thanks, @wwillard7800
- (#6280) Undeprecated StringUtil class (DAT-18538). Thanks, @MalloD12
- (#5223) Improved empty check style by using `isEmpty` String method. Thanks, @MalloD12
- (#6294) Suppress UnsupportedClassVersionErrors for Bigquery at info level (DAT-18534). Thanks, @filipelautert
- (#6263) Fix generated column value for Databricks (DAT-18148). Thanks, @filipelautert
- (#6129) Support Hashicorp Vault settings in the Maven Plugin POM. Thanks, @wwillard7800
- (#6138) Added support for `include` columns in indexes. Thanks, @stephenatwell
- (#6402) Added `pg_stat_statements` and `pg_stat_statements_info` views to the list of system tables and views to prevent them from being dropped. Thank you, @rozenshteyn
- (#6211) Updated PostgreSQL database major and minor versions. Thanks, @MalloD12


## Bug Fixes


- (#6266) Fix CustomTaskRollback rollback bug where it was being called twice. Thanks, @momosetkn
- (#6205) Removed usage of the deprecated isEmpty() method. Thanks, @anton-erofeev
- (#6366) Improve startup performance (DAT-18327). Thanks, @StevenMassaro
- (#6407)  Added filterable flag to ChangeLogParameter class (DAT-18811). Thanks, @abrackx
- (#6416) When determining the schema name make sure a value was found (DAT-18673). Thanks, @abrackx
- (#6418) Fix issue where context filters with `@` symbols were not being executed properly (DAT-18843). Thanks, @abrackx
- (#6406) Test assertion code modification. (DAT-17568). Thanks, @wwillard7800
- (#6429) Check that getPriority method is correct for snapshot generators (DAT-18730). Thanks, @StevenMassaro
- (#6417) Revert "Remove unneeded inclusion of commons-io in liquibase-core pom.xml". Thanks, @catull
- (#6385) Do not check for nested database objects when using foreignKeyConstraintExists precondition (DAT-18624). Thanks, @abrackx
- (#5894) Do not strip "classpath:" when normalizing the path. Thanks, @andrus
- (#6359) Fix issue where change set with blank ID was allowed to run (DAT-18687). Thanks, @wwillard7800
- (#6109) Fix classpath loading and incorrect configuration for addForeignKeyConstraint (DAT-18191 and DAT-18192). Thanks, @filipelautert
- (#6287) Fix NPE when default value is null. Thanks, @asolntsev
- (#6330) Unhide tag parameter for UpdateTestingRollback command (DAT-18563). Thanks, @MalloD12
- (#6375) Initialize member variable in method to fix tests. Thanks, @wwillard7800
- (#6358) Make global argument definitions static so that they are visible across all threads. Thanks, @StevenMassaro
- (#6309) Fix Locale test. Thanks, @filipelautert
- (#6463) Fix flakey test (DAT-18921). Thanks, @abrackx
- (#6165) fix splitting SQL statements containing @begin or #begin. Thanks, @chrstnbrn
- (#4668) Expanded variables in the `--sql` argument to `executeSql` so that variables can be substituted in `execute-sql --sql-file` command. Thanks, @wwillard7800
- (#6222) Fix: Handle command arguments static behavior. Thanks, @filipelautert
- (#6286) Append the cause of the problem to thrown exception for better debugging. Thanks, @asolntsev
- (#6187) Update JdbcDatabaseSnapshot.java. Thanks, @bmoers
- (#6409) Added more logging (DAT-18114). Thanks, @wwillard7800
- (#6241) Verify existence of the lock table to remove 'table does not exist' error messages. Thanks, @wwillard7800
- (#6339) Added filter to the command scope so include/excludeObjects parameters get properly applied. Thanks, @Evan-Christensen!
- (#6332) Updated project variables used in Maven configuration to reduce build warnings. Thanks, @catull!
- (#6128) 'MANUAL' MySQL reserved word added. Thanks, @MalloD12
- (#6305) Allow generateChangelog to run against Oracle databases with blank schema names (DAT-18199). Thanks, @wwillard7800
- (#6350) allow replaceIfExists in Postgres procedures (DAT-18495). Thanks, @StevenMassaro
- (#6341) Fix sqlite hsqldb and environment variable tests (DAT-18646). Thanks, @abrackx
- (#6391) Handle Snowflake add NOT NULL constraint (DAT-18798). Thanks, @wwillard7800
- (#6308) Handle offline connection for Snowflake during diff (DAT-18652). Thanks, @wwillard7800
- (#6345) When using default schema for MultiTenantSpringLiquibase the log level is now info instead of warning. Thanks, @deblockt
- (#6261) Fix: do not throw an unchecked exception for SpringBoot. Thanks,  @filipelautert


## Security, Driver and Other Updates


- (#6457) Update jreBundle to latest in install4j @abrackx
- (#6377) Bump org.testcontainers:testcontainers-bom from 1.20.1 to 1.20.2 @dependabot
- (#6443) Bump org.junit.platform:junit-platform-suite from 1.11.0 to 1.11.3 @dependabot
- (#6384) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.0 to 3.10.1 @dependabot
- (#6387) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 3.0.2 to 4.0.1 @dependabot
- (#6400) Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.0 to 3.5.1 @dependabot
- (#6445) Bump org.junit.jupiter:junit-jupiter from 5.11.0 to 5.11.3 @dependabot
- (#6408) Bump actions/cache from 4.0.2 to 4.1.1 @dependabot
- (#6444) Bump junit-jupiter.version from 5.11.0 to 5.11.3 @dependabot
- (#6401) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.0 to 3.5.1 @dependabot
- (#6399) Bump codex-/return-dispatch from 1 to 2 @dependabot
- (#6368) Bump org.xerial:sqlite-jdbc from 3.46.1.0 to 3.46.1.3 @dependabot
- (#6319) Bump groovy.version from 4.0.22 to 4.0.23 @dependabot
- (#6337) Bump commons-io:commons-io from 2.16.1 to 2.17.0 @dependabot
- (#6290) Bump org.yaml:snakeyaml from 2.2 to 2.3 @dependabot
- (#6274) Bump org.jboss.weld.se:weld-se-core from 5.1.2.Final to 5.1.3.Final @dependabot
- (#6276) Bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.1 to 3.5.0 @dependabot
- (#6275) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.3.1 to 3.5.0 @dependabot
- (#6273) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.13.1 to 3.15.0 @dependabot
- (#6284) Bump actions/setup-python from 5.1.1 to 5.2.0 @dependabot
- (#6282) Bump ant.version from 1.10.14 to 1.10.15 @dependabot
- (#6283) Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 @dependabot
- (#6272) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.8.0 to 3.10.0 @dependabot
- (#6247) Bump com.microsoft.sqlserver:mssql-jdbc from 12.6.1.jre8 to 12.8.1.jre8 @dependabot
- (#6246) Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 @dependabot
- (#6221) Bump org.xerial:sqlite-jdbc from 3.46.0.0 to 3.46.1.0 @dependabot
- (#6220) Bump org.apache.maven.plugins:maven-install-plugin from 3.1.2 to 3.1.3 @dependabot
- (#6219) Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.2 to 3.1.3 @dependabot
- (#6213) Bump targetMavenVersion from 3.9.8 to 3.9.9 @dependabot
- (#6202) Bump org.junit.jupiter:junit-jupiter from 5.10.3 to 5.11.0 @dependabot
- (#6201) Bump org.junit.platform:junit-platform-suite from 1.10.3 to 1.11.0 @dependabot
- (#6200) Bump spring.version from 5.3.37 to 5.3.39 @dependabot
- (#6245) Bump actions/delete-package-versions from 3 to 5 @dependabot
- (#6199) Bump junit-jupiter.version from 5.10.3 to 5.11.0 @dependabot

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.29.2...v4.30.0


Changes in version 4.29.2 (2024.09.03)

### Liquibase 4.29.2 is a patch release

> Liquibase 4.29.2 patches minor issues found in Liquibase 4.29.1 release.

## Notable Changes
### [PRO]

#### Custom Policy Checks updates: Create and run Python-based checks which fit your specific needs.
* Liquibase checks have been opened to the world of Python development! This release fixes some minor issues so you can use your custom Python scripts as policy checks to solve your nuanced and techstack specific conditions for better risk mitigation, compliance, code quality, security, and more.
* Learn more https://docs.liquibase.com/custom-policy-checks
* Get the Checks extension to enable this capability: https://docs.liquibase.com/pro-extensions

## Deprecation Notice

#### MacOS .dmg Installer to be removed in next release.
* This is the final Liquibase release in which the MacOS installer will be shipped. Both the tarball (the liquibase-x.y.z.tar.gz) and the .zip (liquibase-x.y.x.zip) are the preferred replaced options for MacOS users.
* Questions or comments? https://www.liquibase.com/contact-us

### [PRO] Changelog

## Changes

* DAT-18013: optionally suppress Liquibase SQL for *-sql commands in https://github.com/liquibase/liquibase-pro/pull/1877 by @StevenMassaro
* DAT-17659: tagDatabase changes in formatted sql files in https://github.com/liquibase/liquibase-pro/pull/1833 by @StevenMassaro
* DAT-18310: update CustomCheckDefaultValuesTest to check all parameters in https://github.com/liquibase/liquibase-pro/pull/1887 by @StevenMassaro
* Now that report files are enabled by default, suppress them with git in https://github.com/liquibase/liquibase-pro/pull/1886 by @wwillard7800
* DAT-17390: global setting for stripComments option in https://github.com/liquibase/liquibase-pro/pull/1879 by @StevenMassaro
* DAT-18111: add "Report" word to title of update reports in https://github.com/liquibase/liquibase-pro/pull/1890 by @StevenMassaro
* DAT-18182: show correct message when license expires on same day in https://github.com/liquibase/liquibase-pro/pull/1885 by @StevenMassaro
* DAT-18342: Store Pro License Key in AWS Secrets Manager in https://github.com/liquibase/liquibase-pro/pull/1896 by @sayaliM0412
* DAT-18063 Release lock after SQLPLUS timeout error in https://github.com/liquibase/liquibase-pro/pull/1892 by @wwillard7800
* DAT-18360: only show expiration date message in checks run if expiration date is not null in https://github.com/liquibase/liquibase-pro/pull/1895 by @StevenMassaro
* DAT-18396 - fix scripts resource caching in https://github.com/liquibase/liquibase-pro/pull/1899 by @filipelautert
* DAT-18420 Change check that controls database checks to make sure they don't run just because we took a snapshot for a custom check in https://github.com/liquibase/liquibase-pro/pull/1902 by @wwillard7800
* DAT-18440 Handle strict mode setting when doing auto rollback in https://github.com/liquibase/liquibase-pro/pull/1909 by @wwillard7800
* DAT-18196: add method to LicenseService to allow custom invalid license message in https://github.com/liquibase/liquibase-pro/pull/1917 by @StevenMassaro
* DAT-18389 Changing Quality Checks -> Policy Checks in https://github.com/liquibase/liquibase-pro/pull/1906 by @wwillard7800


### [Community] Changelog

## Changes

* Make Scope ID RNG no longer use SecureRandom (fix #6178 in https://github.com/liquibase/liquibase/pull/6179 by @danielthegray
* optionally suppress Liquibase SQL for *-sql commands (DAT-18013) in https://github.com/liquibase/liquibase/pull/6132 by @StevenMassaro
* changes in support of globally setting stripComments option (DAT-1739) in https://github.com/liquibase/liquibase/pull/6137 by @StevenMassaro
* Handle reporting of changes which are skipped due to license issues (DAT-17659) in https://github.com/liquibase/liquibase/pull/6114 by @wwillard7800
* [DAT-17993] Improve diffChangelog between MSSQL and Oracle in https://github.com/liquibase/liquibase/pull/6094 by @filipelautert
* DAT-18250 DevOps :: Clean up branch build not working in https://github.com/liquibase/liquibase/pull/6162 by @jandroav
* compare contents of zip file against baseline (DAT-18324) in https://github.com/liquibase/liquibase/pull/6166 by @StevenMassaro
* maven flag for suppressLiquibaseSql (DAT-18273) in https://github.com/liquibase/liquibase/pull/6163 by @StevenMassaro
* Append included labels to the changeset labels when matching (DAT-16636) in https://github.com/liquibase/liquibase/pull/6159 by @wwillard7800
* chore: upgrade installer jdk version to 21.0.4+7 in https://github.com/liquibase/liquibase/pull/6119 by @filipelautert
* Fix serialization of DatabaseChangeLog with 'preConditions' for yaml in https://github.com/liquibase/liquibase/pull/6118 by @MalloD12
* Add additional duplicateFileMode options in https://github.com/liquibase/liquibase/pull/6067 by @k4pran
* Do not show update summary when using update-sql via maven plugin (DAT-18323) in https://github.com/liquibase/liquibase/pull/6168 by @abrackx
* Bump org.mariadb.jdbc:mariadb-java-client from 3.3.3 to 3.4.1 in https://github.com/liquibase/liquibase/pull/6113 by @dependabot
* fix case where expiration date is null in --version output (DAT-18360) in https://github.com/liquibase/liquibase/pull/6170 by @StevenMassaro
* Use correct method for Maven updateSQL * DAT-18142 in https://github.com/liquibase/liquibase/pull/6198 by @wwillard7800
* DAT-18398 - Do not add version to shipped extensions + ignore current ones in https://github.com/liquibase/liquibase/pull/6197 by @filipelautert
* Fixes issue 6054: incorrect system table query on DB2 AS/400 platform in https://github.com/liquibase/liquibase/pull/6185 by @AlexCoolen
* Do not throw exception if data type is not supported by database in https://github.com/liquibase/liquibase/pull/6226 by @wwillard7800
* Do not release lock if not locked by this update * DAT-18370 in https://github.com/liquibase/liquibase/pull/6218 by @wwillard7800
* add method to LicenseService to allow custom invalid license message( DAT-18196) in https://github.com/liquibase/liquibase/pull/6232 by @StevenMassaro
* fix: EndDelimiter not working as expected since 4.29 in https://github.com/liquibase/liquibase/pull/6157 by @filipelautert
* Changing Quality Checks -> Policy Checks in https://github.com/liquibase/liquibase/pull/6204 by @wwillard7800
* fix release workflows in https://github.com/liquibase/liquibase/pull/6260 by @jandroav

## Security, Driver and Other Updates

* Bump org.testcontainers:testcontainers-bom from 1.19.8 to 1.20.1 in https://github.com/liquibase/liquibase/pull/6155 by @dependabot
* Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0 in https://github.com/liquibase/liquibase/pull/6112 by @dependabot
* Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.8.0 in https://github.com/liquibase/liquibase/pull/6116 by @dependabot


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.29.1...v4.29.2


Changes in version 4.29.1 (2024.07.31)

### Liquibase 4.29.1 is a patch release

* Liquibase 4.29.1 patches a pom mismatch in the Liquibase BigQuery Commercial Extension.

* Liquibase 4.29.1 resolves an issue with the zip distribution where all files were incorrectly placed inside liquibase-4.29.1 directory. This update ensures proper file organization and installation.


### [PRO] Changelog

## [PRO] Bug Fixes

* DAT-18294: Correctly default check scope parameter in https://github.com/liquibase/liquibase-pro/pull/1880 by @wwillard7800


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.29.0...v4.29.1


Changes in version 4.29.0 (2024.07.25)

### Liquibase 4.29.0 is a major release

> [!IMPORTANT]
> Liquibase 4.29.0 contains several New Capabilities and Notable Enhancements for Liquibase Pro users: Python-based Custom Policy Checks and a new Big Query extension.
> [!NOTE]
> See the [Liquibase 4.29.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.29.0.html) for the complete set of release information.

## Notable Changes

### [PRO]
#### Custom Policy Checks: Create and run Python-based checks which fit your specific needs.
* Liquibase checks have been opened to the world of Python development! With this release, you can point your custom checks to your custom Python scripts to solve your nuanced conditions for better risk mitigation, compliance, code quality, security, and more.
* Learn more https://docs.liquibase.com/custom-policy-checks

#### Big Query Extension: using Liquibase Pro with Google Big Query
* With Liquibase 4.29.0, Google BigQuery is now supported as an ‘out of the box’ database enabling users to more quickly achieve value. Also included is support for Liquibase Pro features such as Flows, Policy Checks, and Reports with Google BigQuery so that users will have the efficiency and productivity benefits of Liquibase Pro when working with the platform.
* Learn more https://docs.liquibase.com/bigquery


### [PRO] Changelog

## New Features
* DAT-16671: Custom policy checks in https://github.com/liquibase/liquibase-pro/pull/1671 by @wwillard7800
* DAT-17725: Enable reporting by default, swallow all report generation exceptions in https://github.com/liquibase/liquibase-pro/pull/1763 by @abrackx
* DAT-17871: allow multiple checks to be specified in checks enable/disable commands in https://github.com/liquibase/liquibase-pro/pull/1814 by @StevenMassaro
* DAT-17490: Enhance up* DATe report to split skipped changesets into their own collapsible section in https://github.com/liquibase/liquibase-pro/pull/1752 by @abrackx
* DAT-17635: add wildcard support for check-name param for checks run, show, bulkset in https://github.com/liquibase/liquibase-pro/pull/1787 by @StevenMassaro

## Changes
* DAT-17988: PRO: checks run --checks-output=nonapplicablechecks is broken in https://github.com/liquibase/liquibase-pro/pull/1792 by @wwillard7800
* DAT-17870: add aliases for parameters in checks run, show, and create commands in https://github.com/liquibase/liquibase-pro/pull/1799 by @StevenMassaro
* DAT-17972: abstract report writing to interface for IO in https://github.com/liquibase/liquibase-pro/pull/1795 by @StevenMassaro
* DAT-18086: update minor versions for Azure Uber Jar in https://github.com/liquibase/liquibase-pro/pull/1868 by @filipelautert
* DAT-17654: add test for starting and stopping H2 in detached mode in https://github.com/liquibase/liquibase-pro/pull/1735 by @StevenMassaro
* DAT-17883 Actually expand java and defaults file properties when using --property-substitution-enabled flag in https://github.com/liquibase/liquibase-pro/pull/1782 by @abrackx
* DAT-15723: include arguments in generated drop function changes for Postgres in https://github.com/liquibase/liquibase-pro/pull/1765 by @StevenMassaro
* DAT-17621: add ChangesetAttributesSetTrueOrFalse check in https://github.com/liquibase/liquibase-pro/pull/1754 by @StevenMassaro
* DAT-17657 Handle non-String arguments in Flow in https://github.com/liquibase/liquibase-pro/pull/1721 by wwillard7800
* DAT-16603 Do not append to open stream in flow in https://github.com/liquibase/liquibase-pro/pull/1738 by @wwillard7800
* DAT-8223: add split statements option to SqlUserDefinedPatternCheck in https://github.com/liquibase/liquibase-pro/pull/1744 by @StevenMassaro
* DAT-17535: update parameters for regex helper checks in https://github.com/liquibase/liquibase-pro/pull/1716 by @StevenMassaro
* DAT-15916 Give each SQLCMD log file a unique name by adding the change set author and id in https://github.com/liquibase/liquibase-pro/pull/1732 by @wwillard7800
* DAT-16597: fully qualify names when loading DDL of sprocs and funcs in Snowflake in https://github.com/liquibase/liquibase-pro/pull/1724 by @StevenMassaro

## [PRO] Bug Fixes
* DAT-18207: Do not open report when headless is true in https://github.com/liquibase/liquibase-pro/pull/1843 by @abrackx
* DAT-18052: make check-name case-insensitive for checks bulk-set in https://github.com/liquibase/liquibase-pro/pull/1815 by @StevenMassaro


## [PRO] Security, Driver and Other Updates
(#1825) Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 by @dependabot
(#1824) Bump net.snowflake:snowflake-jdbc from 3.16.1 to 3.17.0 by @dependabot
(#1819) Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.17.1 to 2.17.2 by @dependabot
(#1820) Bump com.fasterxml.jackson.core:jackson-* DATabind from 2.17.1 to 2.17.2 by @dependabot
(#1818) Bump com.fasterxml.jackson.core:jackson-annotations from 2.17.1 to 2.17.2 by @dependabot
(#1807) Bump org.apache.groovy:groovy-all from 4.0.21 to 4.0.22 by @dependabot
(#1804) Bump org.junit.vintage:junit-vintage-engine from 5.10.2 to 5.10.3 by @dependabot
(#1803) Bump org.junit:junit-bom from 5.10.2 to 5.10.3 by @dependabot
(#1805) Bump org.projectlombok:lombok from 1.18.32 to 1.18.34 by @dependabot
(#1791) Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by @dependabot
(#1817) Bump com.fasterxml.jackson.core:jackson-core from 2.17.1 to 2.17.2 by @dependabot
(#1816) Bump com.networknt:json-schema-vali* DATor from 1.4.2 to 1.5.0 by @dependabot
(#1786) Bump com.github.xmlet:xsdParser from 1.2.14 to 1.2.15 by @dependabot
(#1794) Bump com.networknt:json-schema-vali* DATor from 1.4.0 to 1.4.2 by @dependabot
(#1783) Bump com.azure:azure-identity from 1.8.1 to 1.12.2 in /liquibase-azure-deps by @dependabot
(#1781) Bump com.microsoft.azure:msal4j from 1.13.8 to 1.15.1 in /liquibase-azure-deps by @dependabot
(#1746) Bump net.snowflake:snowflake-jdbc from 3.16.0 to 3.16.1 by @dependabot
(#1737) Bump org.mariadb.jdbc:mariadb-java-client from 3.3.3 to 3.4.0 by @dependabot
(#1760) Bump org.hsqldb:hsqldb from 2.7.2 to 2.7.3 by @dependabot
(#1758) Bump liquibase/build-logic from 0.7.7 to 0.7.8 by @dependabot
(#1718) Bump org.mockito:mockito-core from 5.11.0 to 5.12.0 by @dependabot
(#1717) Bump com.oracle.* DATabase.jdbc:ojdbc8 from 19.22.0.0 to 19.23.0.0 by @dependabot
(#1736) Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.0 by @dependabot
(#1745) Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 by @dependabot
(#1762) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 by @dependabot


### [Community] Changelog

## Breaking Changes
- (#6089) refactor history command to use command framework (DAT-17970) @StevenMassaro

## Changes
- (#5988) High Level API (aka undeprecate Liquibase class) @filipelautert
- (#5704) Fix SQL execution issue with endDelimiter '/' and splitStatements @MalloD12
- (#6032) DAT-17939  Add ability to generate Liquibase zip with extensions for any PR @jandroav
- (#6017) Fix issue 5944 @MalloD12
- (#5925) feat: FastCheck refactoring @filipelautert
- (#5802) refactored data clumps @compf
- (#6022) Changed condition to trigger tests @rberezen
- (#5929) add detached mode for running H2 (DAT-17654) @StevenMassaro
- (#5993) Move ChangeLogParameters helper methods to ChangeLogParameters class (DAT-17883) @abrackx
- (#5766) Use lombok getter and setter. @asashour
- (#5982) DAT-17770 Package BQ commercial jar inside liquibase tar ball \& zip @jandroav
- (#5986) fix incorrect line breaks and wrapping when generating table output (DAT-17891 and DAT-17288) @StevenMassaro
- (#5911) Fix sequenceExists check that became case sensitive for Postgresql @davidecavestro
- (#5598) Changeset execution information properties @jasonlyle88
- (#5774) Prevent spurious SET SEARCH\_PATH SQL statements for Postgres during update-sql command. Fixes #5316 @mpvvliet
- (#5875) GH issue #5872 improve regex for endDelimiter and rollbackEndDelimiter @wwillard7800
- (#5957) retain original dbms string (DAT-17621) @StevenMassaro
- (#5980) DAT-17768 - Add new directory internal/extension to classpath @filipelautert
- (#5977) fully qualify names of tables when snapshotting unique constraints in Snowflake (DAT-17880) @StevenMassaro
- (#5950) add default constructor + setters to `DatabaseChangeLogLock` @rursprung
- (#5961) Make the message be more accurate when an exception occurs during database close @wwillard7800
- (#5898) Do not log stack trace if isExpected flag is true for CommandFailedException @wwillard7800
- (#1826) Prevent silent failures when two "databaseChangeLog" tags are present @danielthegray
- (#5953) `CheckSum`: add getter for `storedCheckSum` @rursprung
- (#901) Microsoft SQL Server doesn't support ORDER in sequences @danielthegray
- (#5915) Added connect command to Maven DAT-17411 @wwillard7800
- (#5932) use Commons-IO where possible (DAT-17634) @StevenMassaro
- (#5812) DAT-16825 :: RawSqlStatement refactoring @MalloD12
- (#5922) generated addPrimaryKey changes should not include column direction (DAT-17467) @StevenMassaro
- (#5939) Adding property to build so that liquibase-scripting shows up in the tarball @wwillard7800
- (#5941) Run-Test configuration updated to avoid buidling jakarta.enterprise jakarta.enterprise.cdi api with Java 11 @MalloD12
- (#5903) [DAT-16377] Verify if supports method is implemented in a change to prevent unexpected behaviors @filipelautert
- (#5919) fully qualify names for Snowflake unique constraints (DAT-16598) @StevenMassaro
- (#5937) DAT-17536: Update weekly-integration-tests.yml @sayaliM0412
- (#5926) throw exception from diff-changelog when failure occurs (DAT-17623) @StevenMassaro

## New Features
- (#5850) Change visibility of useful methods to support custom checks (DAT-16671) @wwillard7800
- (#1379) Added liquibase:snapshot command to the liquibase-maven-plugin @malikin
- (#6036) feat: allow setting row-level dependency tracking in the create table statement on Oracle Database @matheusviegas
- (#6085) feat: release liquibase-cli package to maven @filipelautert
- (#5975) Update diff summary results in mdc to not be recalculated (DAT-17725) @abrackx
- (#6099) chore: include slf4j-simple and pin version to allow dependabot to upgrade it for us @filipelautert
- (#6046) feat: add current java version to Banner @filipelautert
- (#6039) command argument aliases that can be printed to help (DAT-17870) @StevenMassaro
- (#5965) Do not show message for bigquery database (DAT-17497) @vitaliimak
- (#5966) Add support for NULL placeholders on loadData @davidecavestro
- (#5924) Optimize parsing big xml files @asolntsev
- (#6021) feat: Add dependencies for apache commons libraries that are being used @filipelautert
- (#6034) feat: Add status command output + tests to make sure that ir runs at same time than update. @filipelautert


## Bug Fixes
- (#6117) Remove unneeded inclusion of commons-io in liquibase-core pom.xml @wwillard7800
- (#6097) Fixed performance issue with valueBlobFile on Postgres databases introduced in v4.18.0 @Shauren
- (#6083) Fix defaultValueComputed inside addColumn producing bad SQL with Postgres @micopiira
- (#6045) Add osgi.serverloader manifest header entries for liquibase.changelog.visitor.ValidatingVisitorGenerator #6040 fix @steinarb
- (#6024) fix #6019 NullPointerException when using CharType or VarcharType with H2 database @cchoz
- (#6015) Fix OSGi import for `org.apache.commons.io` @vkolomeyko
- (#6041) Rawsqlstatement refactoring fixes @MalloD12
- (#6027) chore: allow slf4j library to be included in liquibase zip/installer @filipelautert
- (#5958) Clone system properties to prevent ConcurrentModificationException @Alf-Melmac



## Security, Driver and Other Updates
- (#6028) Bump spring.version from 5.3.28 to 5.3.37 @dependabot
- (#6013) Bump org.firebirdsql.jdbc:jaybird from 5.0.4.java8 to 5.0.5.java8 @dependabot
- (#6029) Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 @dependabot
- (#6011) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.0 @dependabot
- (#6018) Bump targetMavenVersion from 3.9.7 to 3.9.8 @dependabot
- (#6012) Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 @dependabot
- (#5952) Bump net.snowflake:snowflake-jdbc from 3.16.0 to 3.16.1 @dependabot
- (#5969) Bump org.hsqldb:hsqldb from 2.7.2 to 2.7.3 @dependabot
- (#5951) Bump org.xerial:sqlite-jdbc from 3.45.3.0 to 3.46.0.0 @dependabot
- (#5971) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 @dependabot
- (#5973) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 @dependabot
- (#5972) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.13.0 to 3.13.1 @dependabot
- (#5970) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.11.0.3922 to 4.0.0.4121 @dependabot
- (#5964) Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.1 to 3.5.0 @dependabot
- (#5959) Bump liquibase/build-logic from 0.7.7 to 0.7.8 @dependabot
- (#5949) Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 @dependabot
- (#5948) Bump targetMavenVersion from 3.9.6 to 3.9.7 @dependabot
- (#5900) Bump com.oracle.database.jdbc:ojdbc8 from 19.22.0.0 to 19.23.0.0 @dependabot
- (#5931) Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.0 @dependabot
- (#5889) Bump info.picocli:picocli from 4.7.5 to 4.7.6 @dependabot
- (#5895) Bump org.testcontainers:testcontainers-bom from 1.19.7 to 1.19.8 @dependabot
- (#6090) Bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.3.1 @dependabot
- (#6091) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.3.0 to 3.3.1 @dependabot
- (#6092) Bump actions/setup-python from 5.1.0 to 5.1.1 @dependabot
- (#6088) Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 @dependabot
- (#6048) Bump junit-jupiter.version from 5.10.2 to 5.10.3 @dependabot
- (#6047) Bump org.junit.jupiter:junit-jupiter from 5.10.2 to 5.10.3 @dependabot
- (#6043) Bump org.apache.commons:commons-text from 1.11.0 to 1.12.0 @dependabot
- (#6049) Bump org.projectlombok:lombok from 1.18.32 to 1.18.34 @dependabot
- (#6050) Bump org.junit.platform:junit-platform-suite from 1.10.2 to 1.10.3 @dependabot
- (#6060) Bump groovy.version from 4.0.21 to 4.0.22 @dependabot
- (#6059) Bump robinraju/release-downloader from 1.10 to 1.11 @dependabot
- (#6026) Bump Spring-core version to 5.3.37 @filipelautert
- (#5810) Bump jakarta.enterprise:jakarta.enterprise.cdi-api from 4.0.1 to 4.1.0 @dependabot
- (#5790) Bump stCarolas/setup-maven from 4.5 to 5 @dependabot
- (#5824) Bump peter-evans/repository-dispatch from 1 to 3 @dependabot


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.28.0...v4.29.0

### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!



Changes in version 4.28.0 (2024.05.15)

### Liquibase 4.28.0 is a major release

### [PRO] Changelog

* DAT-17543: Handle chained checks which have been skipped because of a scope mismatch in https://github.com/liquibase/liquibase-pro/pull/1697 by wwillard7800
* DAT-16725: automatically open generated reports in browser in https://github.com/liquibase/liquibase-pro/pull/1703 by StevenMassaro
* DAT-17485: always show update summary message in update report in https://github.com/liquibase/liquibase-pro/pull/1708 by StevenMassaro
* DAT-17630: Rework logic for checking for database connection in https://github.com/liquibase/liquibase-pro/pull/1706 by wwillard7800
* DAT-17400: add Snowflake integration tests in https://github.com/liquibase/liquibase-pro/pull/1693 by StevenMassaro
* DAT-17540: Rename MaxRowsAllowed and added two more checks for update and delete in https://github.com/liquibase/liquibase-pro/pull/1686 by wwillard7800
* DAT-17348: add condition evaluation details to conditions which evaluate to true in https://github.com/liquibase/liquibase-pro/pull/1688 by StevenMassaro
* DAT-15920: error if native executor conf file or rollback file is not found and pro-strict is true in https://github.com/liquibase/liquibase-pro/pull/1663 by StevenMassaro
* DAT-17601: Expand variables that are included in flow files in https://github.com/liquibase/liquibase-pro/pull/1694 by wwillard7800


## [PRO] Security, Driver and Other Updates

(#1652) Bump org.apache.groovy:groovy-all from 4.0.20 to 4.0.21 @dependabot
(#1673) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.5.3 @dependabot
(#1700) Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.17.0 to 2.17.1 @dependabot
(#1701) Bump com.fasterxml.jackson.core:jackson-databind from 2.17.0 to 2.17.1  @dependabot
(#1710) Bump info.picocli:picocli from 4.7.5 to 4.7.6 @dependabot
(#1702) Bump liquibase/build-logic from 0.7.5 to 0.7.7 @dependabot
(#1699) Bump com.fasterxml.jackson.core:jackson-annotations from 2.17.0 to 2.17.1 @dependabot
(#1698) Bump com.fasterxml.jackson.core:jackson-core from 2.17.0 to 2.17.1 @dependabot
(#1684) Bump commons-codec:commons-codec from 1.16.1 to 1.17.0 @dependabot
(#1668) Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 @dependabot
(#1707) Bump net.snowflake:snowflake-jdbc from 3.15.1 to 3.16.0 @dependabot
(#1695) Bump com.github.spullara.mustache.java:compiler from 0.9.11 to 0.9.13 @dependabot
(#1690) Bump liquibase/build-logic from 0.7.2 to 0.7.5 @dependabot
(#1680) Bump liquibase/build-logic from 0.7.2 to 0.7.5  AI Generated Code @dependabot
(#1666) Bump actions/upload-artifact from 2 to 3 @dependabot


### [Community] Changelog

## Breaking Changes

- (#5619) Improve snapshot extensibility for NoSQL databases @fbiville
- (#5729) remove ValueHandlerUtil and improve CLI argument parsing (DAT-15398) @StevenMassaro

## New Features

- (#5899) H2 tests may end up with an incorrect list of the standard DatabaseObject types, so we need to reset the factory @wwillard7800
- (#5897) chore: invoke deprecated methods in default supports method for backwards compatibility @filipelautert
- (#5870) only run drop all if database was used in the test @StevenMassaro
- (#5848) do not allow arguments with default values to be required (DAT-17436) @StevenMassaro
- (#5833) Use Java 8 features @asashour
- (#5767) Ensure a new-line at the end of text files. @asashour
- (#5814) refactor ValidatingVisitor to use factory pattern, error if strict is set and defaults file does not exist (DAT-15920) @StevenMassaro
- (#5716) Fix typos @asashour
- (#5782) Update ChangeSetService to handle new ModifyChangeset creation (DAT-17322) @wwillard7800
- (#5715) Add `@Deprecated` annotation. @asashour
- (#5828) Improve diffChangelog error message @filipelautert
- (#5799) Add new lifecycle methods for UpdateTestingRollbackCommandStep (DAT-15641) @abrackx
- (#5780) Deprecate ThreadLocalScopeManager as it is no longer required @filipelautert
- (#5714) Introduce a method with a correct name of `StringUtil.randomIdentifer()`. @asashour
- (#5793) move output file handling into factory pattern (DAT-17290) @StevenMassaro
- (#5741) Implement Customizer for SpringLiquibase. @asashour
- (#5777) Prevent error when unlocking the changelog in MySQL affects zero rows and useAffectedRows is true. Fixes #5502 @mpvvliet
- (#5619) Improve snapshot extensibility for NoSQL databases @fbiville
- (#5658) User lombok Getter and Setter. @asashour
- (#5532) Record current Liquibase version on a RERUN changeset (#5529) @jdvorak001
- (#5745) Add method that can be used to verify database connection (DAT-16600) @vitaliimak
- (#5705) upgrade groovy, spock and mockito to later versions (DAT-10403) @StevenMassaro
- (#5861) Update db2 docker location by @filipelautert
- (#5860) chore: increasing test coverage by @filipelautert
- (#5853) use Apache Commons where possible, instead of homegrown solutions (DAT-17303) by @StevenMassaro
- (#5867) cleanup weekly-integration-tests.yml (DAT-17400) by @StevenMassaro
- (#4240) PD-3241: failOnError syntax by @adrian-velonis1
- (#5871) load shared database fields in tests by @StevenMassaro


## Bug Fixes

- (#5795) Fixes issue with incorrect schema in column exists precondition when checking using a snapshot @mpvvliet
- (#5783) Fixed issue that unique constraint precondition does not honor schemaName attribute on MySQL @mpvvliet
- (#5874) refactor cached prepared statement to become ThreadLocal (#5635) @adaryin
- (#5888) normalize paths in DatabaseChangeLog using commons-io (DAT-17592) @StevenMassaro
- (#5887) Fix ordering of clause for Oracle global temporary tables SQL generation @wwillard7800
- (#5869) Update diff summary results in mdc to not be recalculated (DAT-17096) @abrackx
- (#5756) Fix (MSSQL): end delimiter logic broken by BEGIN DIALOG/BEGIN CONVERSATION  @MalloD12
- (#5781) Fix (MSSQL): default end delimiter applied when there is an endDelimiter applied for a given chanset @MalloD12
- (#5883) Issue 5654 includeall min max depth fixes @jasonlyle88
- (#5842) optimize DBCL checksum query and set fetch size on all statements (DAT-17267) @StevenMassaro
- (#5794) fix calculation of total change sets in update summary (DAT-17262) @StevenMassaro
- (#5792) fix: keep indexes list in the order returned by database @filipelautert
- (#5703) Also replace '@' character in temporary file names DAT-17292 @wwillard7800
- (#5727) fixes #5724: compare normalized file paths @jgarec
- (#5755) detect duplicate jars that do not have a version (DAT-16044) @StevenMassaro
- (#5687) fix: addColumn changes are not respecting Datatypes definitions @filipelautert
- (#5580) Support to generate a ChangeSetStatus with setting all its attributes when a changeset will be skipped  @MalloD12
- (#5751) New boolean input logic allows 'off' to be valid, so fix test @wwillard7800

## Security, Driver and Other Updates

- (#5864) Bump net.snowflake:snowflake-jdbc from 3.15.1 to 3.16.0 @dependabot
- (#5797) Bump org.slf4j:slf4j-jdk14 from 2.0.12 to 2.0.13 @dependabot
- (#5884) Bump org.objenesis:objenesis from 3.3 to 3.4 @dependabot
- (#5863) Bump org.apache.maven.plugins:maven-install-plugin from 3.1.1 to 3.1.2 @dependabot
- (#5839) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.5.3 @dependabot
- (#5829) Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 @dependabot
- (#5811) Bump org.xerial:sqlite-jdbc from 3.45.2.0 to 3.45.3.0 @dependabot
- (#5785) Bump groovy.version from 4.0.20 to 4.0.21 @dependabot
- (#5879) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.12.0 to 3.13.0 @dependabot
- (#5880) Bump liquibase/build-logic from 0.7.6 to 0.7.7 @dependabot
- (#5865) Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.1 to 3.1.2 @dependabot
- (#5851) Bump liquibase/build-logic from 0.7.2 to 0.7.5 @dependabot
- (#5845) Bump liquibase/build-logic from 0.7.2 to 0.7.5 @dependabot
- (#5841) Bump liquibase/build-logic from 0.6.9 to 0.7.3 @dependabot
- (#5779) Bump net.snowflake:snowflake-jdbc from 3.15.0 to 3.15.1 @dependabot
- (#5787) Bump robinraju/release-downloader from 1.9 to 1.10 @dependabot
- (#5699) Bump org.postgresql:postgresql from 42.7.2 to 42.7.3 @dependabot
- (#5675) Bump org.firebirdsql.jdbc:jaybird from 5.0.3.java8 to 5.0.4.java8 @dependabot
- (#5689) Bump org.xerial:sqlite-jdbc from 3.44.1.0 to 3.45.2.0 @dependabot
- (#5757) Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12 @dependabot
- (#5764) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.11.0 to 3.12.0 @dependabot
- (#5765) Bump liquibase/build-logic from 0.6.7 to 0.6.9 @dependabot
- (#5773) Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1 @dependabot
- (#5752) Bump actions/setup-python from 5.0.0 to 5.1.0 @dependabot
- (#5713) Bump actions/cache from 3.3.1 to 4.0.2 @dependabot
- (#5678) Bump softprops/action-gh-release from 1 to 2 @dependabot
- (#5711) Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0 @dependabot
- (#5710) Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.1 @dependabot
- (#5673) Bump org.glassfish.jaxb:jaxb-core from 4.0.4 to 4.0.5 @dependabot
- (#5672) Bump org.glassfish.jaxb:jaxb-runtime from 4.0.4 to 4.0.5 @dependabot
- (#5662) Bump org.testcontainers:testcontainers-bom from 1.19.6 to 1.19.7 @dependabot
- (#5690) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.10.0.2594 to 3.11.0.3922 @dependabot
- (#5685) Bump net.snowflake:snowflake-jdbc from 3.14.4 to 3.15.0 @dependabot
- (#5868) Bump liquibase/build-logic from 0.7.5 to 0.7.6 by @dependabot

### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!


Changes in version 4.27.0 (2024.03.26)

### Liquibase 4.27.0 is a major release

> Liquibase 4.27.0 contains several New Capabilities and Notable Enhancements for Liquibase Pro users: DATABASECHANGELOGHISTORY table, Quality Checks Chains, Rollback Reports
> See the [Liquibase 4.27.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.27.0.html) for the complete set of release information.

## Notable Changes
### [PRO]
#### Liquibase DATABASECHANGELOGHISTORY table: See all changes that have been applied to your database
* With the new DatabaseChangeLogHistory (DBCLH) Table, get a complete history of changes made to your database through Liquibase operations, including updates, rollbacks, dropAlls, tags, changelogsyncs, and repeated updates to the same ChangeSet. The DBCLH table is disabled by default, so Users must turn it on to start capturing historical data.
* Learn more https://docs.liquibase.com/databasechangeloghistory

#### Quality Checks Chains: Perform multiple policy evaluations with a single Quality Check
* Chain multiple Quality Checks together with logic conditionals (AND, OR, and NOT) for more flexibility to perform multiple evaluations in a single check. Useful to confirm complex best practices or governance issues. Check Chains are run like traditional single-condition existing Quality Checks
* Learn more https://docs.liquibase.com/quality-checks

#### Observability: Rollback Reports: Understand and share the data on the execution of rollback commands
* Easily scan and understand a high-level overview of the ChangeSets rolled back. Get a detailed view of both successful and failed rollbacks. Collaborate with your team with shareable report in PDF format
* Learn more https://docs.liquibase.com/observability

## Breaking Change
- (#5584) throw exception if drop all fails (DAT-16718) @StevenMassaro

### [PRO] Changelog

* DAT-16798: Style rollback reports in https://github.com/liquibase/liquibase-pro/pull/1534 by @abrackx
* DAT-16857: record operationOutcome in MDC in https://github.com/liquibase/liquibase-pro/pull/1606 by StevenMassaro
* DAT-16853: Chained checks reports in https://github.com/liquibase/liquibase-pro/pull/1580 by @abrackx
* DAT-16127 Checks chaining implementation in https://github.com/liquibase/liquibase-pro/pull/1500 by wwillard7800
* DAT-16178: database changelog history record-keeping in https://github.com/liquibase/liquibase-pro/pull/1334 by StevenMassaro
* DAT-16092 Implemented checkStatus argument for filtering by enabled/disabled status in https://github.com/liquibase/liquibase-pro/pull/1577 by wwillard7800
* DAT-17187: Add check rollbacks to runtime metadata in https://github.com/liquibase/liquibase-pro/pull/ by @abrackx
* DAT-16920: add path filter option to SqlUserDefinedPatternCheck in https://github.com/liquibase/liquibase-pro/pull/1575 by StevenMassaro
* DAT-17072 Added new autoEnableNewChecks option and fix bug with autoUpdate in https://github.com/liquibase/liquibase-pro/pull/1566 by wwillard7800
* DAT-16420: add propertySubstitutionEnabled flag to checks run command in https://github.com/liquibase/liquibase-pro/pull/1569 by StevenMassaro
* DAT-16845: exclude unnecessary directories/files from built jar in https://github.com/liquibase/liquibase-pro/pull/1565 by StevenMassaro
* DAT-15170: add EndDelimiterExistsWhenPatternExists QC in https://github.com/liquibase/liquibase-pro/pull/1517 by StevenMassaro
* DAT-16559: Add copy url button to checks run and update reports in https://github.com/liquibase/liquibase-pro/pull/1521 by @abrackx
* DAT-16770: Fix table styling in details by check in https://github.com/liquibase/liquibase-pro/pull/1531 by @abrackx
* DAT-16683 Implement snapshot filters for snapshotReference command in https://github.com/liquibase/liquibase-pro/pull/1506 by wwillard7800
* DAT-15980 Added new CheckRunInTransactionValue rule in https://github.com/liquibase/liquibase-pro/pull/1516 by wwillard7800
* DAT-16544 Fix issue with bad SQL generation in https://github.com/liquibase/liquibase-pro/pull/1512 by wwillard7800
* DAT-14830: warn if running checks bulk-set without arguments in https://github.com/liquibase/liquibase-pro/pull/1592 by StevenMassaro
* DAT-16105: improve interactive prompting through Powershell ISE in https://github.com/liquibase/liquibase-pro/pull/1581 by StevenMassaro
* DAT-16765: throw exception when using init copy on non-s3 paths in https://github.com/liquibase/liquibase-pro/pull/1539 by StevenMassaro
* PD-3246: init copy --source/--target descriptions in https://github.com/liquibase/liquibase-pro/pull/946 by adrian-velonis1
* DAT-16271: properly handle creating procedure with no args and external name in https://github.com/liquibase/liquibase-pro/pull/1494 by StevenMassaro
* DAT-16567 Handle logFormat when set in a flow file in https://github.com/liquibase/liquibase-pro/pull/1522 by wwillard7800
* DAT-16306: wrap INITCOND of Postgres aggregate functions in single quotes in https://github.com/liquibase/liquibase-pro/pull/1502 by StevenMassaro


## [PRO] Security, Driver and Other Updates

* Bump liquibase/build-logic from 0.6.4 to 0.6.6 dependencies github_actions #1616 by dependabot bot
* Bump org.projectlombok:lombok from 1.18.30 to 1.18.32  #1614 by dependabot bot
* Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.1 #1613 by dependabot bot
* Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0 #1612 by dependabot bot
* Bump com.networknt:json-schema-validator from 1.3.3 to 1.4.0  #1610 by dependabot bot
* Bump actions/delete-package-versions from 3 to 5  dependencies github_actions #1551 by dependabot bot
* Bump org.postgresql:postgresql from 42.7.2 to 42.7.3  #1604 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-core from 2.16.2 to 2.17.0  #1597 by dependabot bot
* Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.16.2 to 2.17.0  #1595 by dependabot bot
* Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.10.0.2594 to 3.11.0.3922  #1599 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-databind from 2.16.2 to 2.17.0  #1596 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-annotations from 2.16.2 to 2.17.0  #1594 by dependabot bot
* Bump com.github.jsqlparser:jsqlparser from 4.8 to 4.9 #1583 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-annotations from 2.16.1 to 2.16.2  #1588 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-core from 2.16.1 to 2.16.2  #1586 by dependabot bot
* Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.16.1 to 2.16.2  #1584 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-databind from 2.16.1 to 2.16.2  #1585 by dependabot bot
* Bump ch.qos.logback:logback-classic from 1.5.1 to 1.5.2  #1568 by dependabot bot
* Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.15.3 to 2.16.1  #1449 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-annotations from 2.15.3 to 2.16.1  #1450 by dependabot bot
* Bump com.oracle.database.jdbc:ojdbc8 from 19.21.0.0 to 19.22.0.0  #1563 by dependabot bot
* Bump org.mariadb.jdbc:mariadb-java-client from 3.2.0 to 3.3.3  #1555 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-core from 2.15.3 to 2.16.1  #1451 by dependabot bot
* Bump com.fasterxml.jackson.core:jackson-databind from 2.15.3 to 2.16.1  #1452 by dependabot bot
* Bump com.github.jsqlparser:jsqlparser from 4.7 to 4.8  #1558 by dependabot bot
* Bump com.github.wvengen:proguard-maven-plugin from 2.6.0 to 2.6.1  #1557 by dependabot bot
* Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2  #1559 by dependabot bot
* Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0  #1560 by dependabot bot
* Bump commons-codec:commons-codec from 1.16.0 to 1.16.1  #1561 by dependabot bot
* Bump org.mvel:mvel2 from 2.5.0.Final to 2.5.2.Final  #1562 by dependabot bot
* Bump com.fasterxml.jackson.dataformat:jackson-dataformat-yaml from 2.15.3 to 2.16.1  #1453 by dependabot bot
* Bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11  dependencies java #1309 by dependabot bot
* Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.1  #1547 by dependabot bot
* Bump org.assertj:assertj-core from 3.24.2 to 3.25.3  #1548 by dependabot bot
* Bump ch.qos.logback:logback-classic from 1.4.11 to 1.5.1  #1543 by dependabot bot
* Revert * Bump actions/delete-package-versions from 3 to 5  #1546 by StevenMassaro
* Bump org.postgresql:postgresql from 42.6.0 to 42.7.2  #1530 by dependabot bot
* Bump org.postgresql:postgresql from 42.6.0 to 42.6.1 in /pro  dependencies java #1541 by dependabot bot
* Bump org.postgresql:postgresql from 42.6.0 to 42.7.2 in /liquibase-pro-extension-testing  dependencies java #1527 by dependabot bot


### [Community] Changelog

## Breaking Changes

- (#5584) throw exception if drop all fails (DAT-16718) @StevenMassaro


## New Features

- (#5692) Add force option to dropAll DAT-16418 @wwillard7800
- (#5630) DAT-16798: Add new parameters to rollback report @abrackx
- (#5649) Add CustomChangeChecksum interface @robinjhector
- (#5147) database changelog history record-keeping (DAT-16178) @StevenMassaro
- (#5709) feat: add commons-lang3 as a required dependency for core @filipelautert
- (#5670) 5507-performance\_improvements @filipelautert
- (#5667) Exception handler for when a service cannot be loaded @filipelautert
- (#5650) DAT-16513 - Upgrade installer Java version to 21 @filipelautert
- (#5456) Extended formatted sql preconditions by table-/viewExists @JulienMa94
- (#5597) Format spring package. @asashour
- (#5592) Bring update summary options to all update-related goals of the maven plugin @KeepItSimpleStupid
- (#5530) Use static final Pattern to avoid regexp compilation each time replaceAll is called @turbanoff
- (#3185) Better error message when no test system has been found @abrackx
- (#5501) add sqlParserExceptionLogAtLevel param to checks.run maven target (DAT-16309) @StevenMassaro
- (#5593) Format sql server urls in reports (DAT-16559) @abrackx
- (#5506) fix: Parse all utf8 symbols @filipelautert
- (#5500) Adding maven wrapper support  @filipelautert
- (#5548) Allow override of snapshot control creation for snapshotReference command DAT-16683 @wwillard7800
- (#5545) Handle java.lang.StackOverflowError when running generate-changelog (DAT-16812) @filipelautert
- (#5469) enable DB2 tests (DAT-16658) @StevenMassaro
- (#5527) expand values for url, username, password that use secrets vaults in maven plugin (DAT-16431) @StevenMassaro
- (#5525) Add labels, context and rollback on error info to report (DAT-16531) @abrackx
- (#5490) DAT-16675: add support for command aliases @StevenMassaro
- (#5406) Allow snapshot control creation to be overridden for snapshot filters DAT-16054 @wwillard7800
- (#5256) Added exclusion for MVEL DAT-16282 @wwillard7800
- (#5494) skip integration tests during unit test build (DAT-16719) @StevenMassaro
- (#5329) Support runWith executors committing after the change set completes @dzeigler
- (#5493) automatically run dropall before and after all integration tests @StevenMassaro
- (#5452) Log the exception in case of failure in ChangeSet.execute @bignoncedric
- (#5043) Improve support for DB2[z] empty table precondition @MichaelKern-IVV
- (#5424) Moved saved\_state/compareGenerateSql.. directory from java source to resources bundle @MalloD12
- (#5336) add default constructor + setters to `RanChangeSet` \& related classes @rursprung
- (#5340) Fixes #2352 by adding support for loading embedded jar files @hayeskl
- (#5462) map testcontainers to random available host port @StevenMassaro
- (#5457) prevent multiple databases in test classes @StevenMassaro
- (#5416) do not clear a subset of MDC keys when scope exits (DAT-16500) @StevenMassaro
- (#5164) Write changelog only if changes exist @brachi-wernick
- (#5360) Introduce support for primitive types in new changes @fbiville
- (#5417) switch integration tests to use h2 where possible (DAT-16015) @StevenMassaro
- (#5274) Use mariadb UUID when specify UUID type @mohamed-ahrrass-nw
- (#5347) Added extra space for command help arguments display DAT-13864 @wwillard7800
- (#5413) add changeset identifier to exceptions thrown from LiquibaseSqlParser (DAT-16397) @StevenMassaro
- (#5402) Adds pending changesets to update report (DAT-16332) @abrackx
- (#3581) Support create table if not exists @taeyeon-Kim
- (#4635) generateChangelog optionally creates runOnChange=true and replaceIfExists=true for createView changes @mkarg
- (#5329) Support runWith executors committing after the change set completes @dzeigler


## Bug Fixes

- (#5707) [DAT-16135] add new scope flag for modifyChangeSet flow @KushnirykOleh
- (#5695) Handle empty or null schema for CreateView with replace option DAT-16446 @wwillard7800
- (#5686) add ignore property to includeAll XSD (DAT-14921) @StevenMassaro
- (#5700) FIX: SimpleSQLGrammar quote parsing regression @jasonlyle88
- (#5668) load driver from global argument as well as command argument (DAT-16381) @StevenMassaro
- (#5634) improve update summary count calculations (DAT-16656 and DAT-16357) @StevenMassaro
- (#5629) Fix SQL generation when having a column defined with  startWith and incrementBy in Postgres @MalloD12
- (#5626) Add support for SnakeYaml to be able to parse timestamps correctly when timezone is set or not @MalloD12
- (#5657) [DAT-16428]  Reenable ChangelogSyncIntegrationTest tests @filipelautert
- (#5665) fix: ClearChecksums should not throw Exception in empty databases @filipelautert
- (#5660) Default implementation of handleInvalidEmptyPreconditionCase added in AbtractFormattedChangeLogParser to avoid breaking extensions @MalloD12
- (#5555) Fix unique constraint and primary key generator issues for Postgres and H2 @Guschtel
- (#5583) Add backwards compatibility for procedureBody in createProcedureChange @StevenMassaro
- (#5617) fix: uses ThreadLocal to prevent concurrent modification on ScopeManager @filipelautert
- (#5446) Proposed fix for #5442 - command "unexpectedChangesets" always reports at least 1 unexpected changeset with initial tag in database @Tylorjg
- (#5506) fix: Parse all utf8 symbols @filipelautert
- (#5606) fix: treats potential nullpointer exception after a lock exception @filipelautert
- (#5581) Handle stored logic with parameters in the dependency graph DAT-15747 @wwillard7800
- (#5566) chunk long strings on insert for Oracle (DAT-16774) @StevenMassaro
- (#5522) MariaDB boolean: back to TINYINT(1) instead of TINYINT (MySQL) @famod
- (#5524) Don't execute CustomSqlChanges to generate logs @Alf-Melmac
- (#5498) Add missing OSGI settings @filipelautert
- (#5391) fix SQLFileChange.generateCheckSum() to calculate checksum without property substitution @jglass524
- (#5398) Fix issue #3516 addColumn ignores deleteCascade=true @andreiyusupau
- (#5479) do not skip over duplicate tags when doing rollback (DAT-16277) @StevenMassaro
- (#5484) Workaround failing test containers startup for mysql by falling back to previous version. @abrackx
- (#5397) Fix DatabaseFactory db loading when Database implementation is specified (fix for Issues 5371 \& 5396 ) @dhsmith1001
- (#5202) 4464 fix generated default column value using in PostgreSQL and Oracle for char/clob data types @LonwoLonwo
- (#5350) Fix getSerializableFieldValue when dealing with rollback object @MalloD12
- (#5414) Fix NPE in generateChangelog and diffChangelog DAT-16534 @wwillard7800
- (#5267) fix #5266: comma separated dbms-attribute for createProcedure-change triggers validation-check @jclohmann
- (#5304) Fix for DAT-15716 :: Include 'OR REPLACE' instruction for a view when generate-changelog/diff-changelog command are executed @MalloD12


## 🤖 Security, Driver and Other Updates

- (#5447) Bump org.slf4j:slf4j-jdk14 from 2.0.9 to 2.0.11 @dependabot
- Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 by @dependabot in https://github.com/liquibase/liquibase/pull/5613
- Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 in /liquibase-dist by @dependabot in https://github.com/liquibase/liquibase/pull/5612
- Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.2 to 3.2.5 by @dependabot in https://github.com/liquibase/liquibase/pull/5449
- Bump maven-surefire-plugin.version from 3.2.2 to 3.2.5 by @dependabot in https://github.com/liquibase/liquibase/pull/5448
- Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0 by @dependabot in https://github.com/liquibase/liquibase/pull/5464
- chore(deps): Bump org.junit:junit-bom from 5.10.1 to 5.10.2 by @dependabot in https://github.com/liquibase/liquibase/pull/5556
- chore(deps-dev): Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2 by @dependabot in https://github.com/liquibase/liquibase/pull/5557
- Bump org.testcontainers:testcontainers-bom from 1.19.3 to 1.19.6 by @dependabot in https://github.com/liquibase/liquibase/pull/5621
- Bump actions/github-script from 6 to 7 by @dependabot in https://github.com/liquibase/liquibase/pull/5281
- Bump actions/setup-java from 3 to 4 by @dependabot in https://github.com/liquibase/liquibase/pull/5301
- Bump actions/checkout from 2 to 4 by @dependabot in https://github.com/liquibase/liquibase/pull/5324
- Bump github/codeql-action from 2 to 3 by @dependabot in https://github.com/liquibase/liquibase/pull/5380
- chore(deps-dev): Bump org.assertj:assertj-core from 3.25.1 to 3.25.3 by @dependabot in https://github.com/liquibase/liquibase/pull/5558
- chore(deps): Bump org.slf4j:slf4j-jdk14 from 2.0.11 to 2.0.12 by @dependabot in https://github.com/liquibase/liquibase/pull/5568
- Bump release-drafter/release-drafter from 5 to 6 by @dependabot in https://github.com/liquibase/liquibase/pull/5589
- Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2 by @dependabot in https://github.com/liquibase/liquibase/pull/5614
- bump version of setup-maven action by @StevenMassaro in https://github.com/liquibase/liquibase/pull/5643
- Bump com.oracle.database.jdbc:ojdbc8 from 19.21.0.0 to 19.22.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/5588
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.4.1.jre8 to 12.6.1.jre8 by @dependabot in https://github.com/liquibase/liquibase/pull/5615
- Bump org.mariadb.jdbc:mariadb-java-client from 3.3.2 to 3.3.3 by @dependabot in https://github.com/liquibase/liquibase/pull/5616
- Bump whelk-io/maven-settings-xml-action from 20 to 22 by @dependabot in https://github.com/liquibase/liquibase/pull/5639
- Bump robinraju/release-downloader from 1.8 to 1.9 by @dependabot in https://github.com/liquibase/liquibase/pull/5640
- Bump actions/delete-package-versions from 3 to 5 by @dependabot in https://github.com/liquibase/liquibase/pull/5641
- Bump org.projectlombok:lombok from 1.18.30 to 1.18.32 by @dependabot in https://github.com/liquibase/liquibase/pull/5712


### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!


Changes in version 4.26.0 (2024.02.06)

### Liquibase 4.26.0 is a major release

> [!IMPORTANT]
> Liquibase 4.26.0 contains several Notable Changes for Liquibase Pro users: Advanced IF conditionals, Simpler Regex-based pattern checks, and Checks Run Reports.

> [!NOTE]
> See the [Liquibase 4.26.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-4.26.0.html) for the complete set of release information.

## Notable Changes

### [PRO]
#### Liquibase Flow: Advanced IF conditionals
* In Liquibase flow files, use AND (&&), OR (||), and NOT (!) logic options, in single or grouped conditions, as well as substring matching and checking if a key or file exists.
* Learn more https://docs.liquibase.com/flow

#### Quality Checks: Simpler Regex-based pattern checks
* Check four advanced patterns without having to figure out the complicated regex needed to do it—just supply the patterns and Quality Checks will link and execute them.
* Learn more https://docs.liquibase.com/quality-checks

#### Observability: Checks Run Reports
* Understand and share the data on the execution of Quality Checks with a new Checks Run Report. Easily scan and understand your results with the summary section, Analyze your checks by viewing details by ChangeSet, by check, and by database. And collaborate with your team with shareable report.
* Learn more https://docs.liquibase.com/observability

#### Formatted SQL changelogs can use rollback scripts
* Previously, Formatted SQL ChangeLogs could only run in-line rollback commands. But, sometimes you need something more complex, like a full rollbackSqlFile. This functionality has been available for XML, JSON, and YAML formatted changelogs.
* Learn more https://docs.liquibase.com/concepts/changelogs/sql-format.html

### Liquibase Community and Liquibase Pro

#### Liquibase capability enhancements
* The `diffChangeLog` command has been updated only to create a changelog when changes are detected. This is a change from the previous behavior of creating an empty changelog.
* Adds two new `generateChangelog` options:
   * `--run-on-change-types=createView,createProcedure` will set `runOnChange="true"` for each changeSet which contains solely `createView` and `createProcedure` changes. For backward compatibility, the default is an empty list.
   * `--replace-if-exists=createView,createProcedure` will set `replaceIfExists="true"` for each `createView` and `createProcedure` changes. For backward compatibility, the default is an empty list.
* Fix a bug that previously included substituted properties in the checksum calculation for SQLFile change types

#### JDBC driver updates
* MariaDB JDBC driver updated from 3.2.0 to 3.3.2
* Snowflake JDBC driver updated from 3.14.3 to 3.14.4
* Firebird SQL JDBC driver updated from 5.0.2.java8 to 5.0.3.java8
* SQLite JDBC driver updated from 3.43.2.2 to 3.44.1.0

#### Database platform improvements

##### General
* Adds `create table if not exists` support for the following databases: CockroachDB, DB2 LUW, H2, HSQL, Informix, Ingres9, MariaDB, MySQL, Postgres, and SQLite.
* Fix the generated default column value in PostgreSQL and Oracle for char/clob data types.

##### Maria DB
* Adds Liquibase support for Maria DB 10.10.6 and later's new UUID data type.
* For boolean columns on MariaDB, revert the change made in Liquibase 4.25.1. It has been returned from TINYINT back to TINYINT(1).

##### DB2 z/OS
* Improves support for the empty table precondition.

#### Java API Changes
* AbstractJdbcDatabase now delegates the execution of Changes to the executor, which allows the executor more control over how Changes are executed. This gives executors access to Changes and ChangeSets which enables the management of transaction commits.
* Failure exceptions in ChangeSet.execute are now logged as a SEVERE level for easier access to a concise error message.


### [PRO] Changelog
* DAT-16531: Add labels, contexts, rollback-on-error to update reports runtime info by @abrackx in https://github.com/liquibase/liquibase-pro/pull/1499
* DAT-15455 Refactor ChangelogRewriters to follow general Factory approach by @vitaliimak in https://github.com/liquibase/liquibase-pro/pull/1195
* DAT-16675 add aliases for init copy and project in https://github.com/liquibase/liquibase-pro/pull/1488 by StevenMassaro
* DAT-16640 add rollbackSqlFile to formatted SQL changelog parsingin https://github.com/liquibase/liquibase-pro/pull/1501 by StevenMassaro
* DAT-16054 Implement filters for snapshot command in https://github.com/liquibase/liquibase-pro/pull/1440 by wwillard7800
* DAT-16282 Implement MVEL expression and added tests in https://github.com/liquibase/liquibase-pro/pull/1382 by wwillard7800
* DAT-16684 Checks run report tweaks, add check packages info in https://github.com/liquibase/liquibase-pro/pull/1491 by abrackx
* DAT-16273 Show fully qualified path in console when generating report in https://github.com/liquibase/liquibase-pro/pull/1483 by abrackx
* DAT-13042 Parse LDAP-style URL to create SQLPLUS connection string in https://github.com/liquibase/liquibase-pro/pull/1473 by wwillard7800
* DAT-16237 Styled checks run report in https://github.com/liquibase/liquibase-pro/pull/1481 by abrackx
* DAT-16349 Make sure diffChangelog respects drift arguments in https://github.com/liquibase/liquibase-pro/pull/1461 by wwillard7800
* DAT-16110 Implementation of regex helper checks in https://github.com/liquibase/liquibase-pro/pull/1330 by wwillard7800
* DAT-16500 do not clear a subset of MDC keys when scope exits in https://github.com/liquibase/liquibase-pro/pull/1447 by StevenMassaro
* DAT-16477 Append command name to default report name in https://github.com/liquibase/liquibase-pro/pull/1456 by abrackx
* DAT-16482 Correctly set logLevel on the Liquibase logger in https://github.com/liquibase/liquibase-pro/pull/1433 by wwillard7800
* DAT-16397 add changeset identifier to exceptions thrown from LiquibaseSqlParser in https://github.com/liquibase/liquibase-pro/pull/1443 by StevenMassaro
* DAT-16534 Fix issue with generateChangelog and diffChangelog in https://github.com/liquibase/liquibase-pro/pull/1446 by wwillard7800
* DAT-16330 Remove drift report mode parameter in https://github.com/liquibase/liquibase-pro/pull/1423 by wwillard7800
* DAT-13864 New pending changeset filter for checks run in https://github.com/liquibase/liquibase-pro/pull/1419 by wwillard7800
* DAT-16332 Add pending changes to update report in https://github.com/liquibase/liquibase-pro/pull/1438 by abrackx

## [PRO] Security, Driver and Other Updates
* Bump com.oracle.database.jdbc:ojdbc8 from 19.20.0.0 to 19.21.0.0 #1339 by dependabot bot


### [Community] Changelog

## New Features
- (#5525) Add labels, context and rollback on error info to report (DAT-16531) @abrackx
- (#5490) DAT-16675: add support for command aliases @StevenMassaro
- (#5406) Allow snapshot control creation to be overridden for snapshot filters DAT-16054 @wwillard7800
- (#5256) Added exclusion for MVEL DAT-16282 @wwillard7800
- (#5336) add default constructor + setters to `RanChangeSet` \& related classes @rursprung
- (#5340) Fixes #2352 by adding support for loading embedded jar files @hayeskl
- (#5164) Write changelog only if changes exist @brachi-wernick
- (#5360) Introduce support for primitive types in new changes @fbiville
- (#5274) Use mariadb UUID when specify UUID type @mohamed-ahrrass-nw
- (#5413) add changeset identifier to exceptions thrown from LiquibaseSqlParser (DAT-16397) @StevenMassaro
- (#5402) Adds pending changesets to update report (DAT-16332) @abrackx
- (#3581) Support create table if not exists @taeyeon-Kim
- (#4635) generateChangelog optionally creates runOnChange=true and replaceIfExists=true for createView changes @mkarg

## Changes
- (#5329) Support runWith executors committing after the change set completes @dzeigler
- (#5452) Log the exception in case of failure in ChangeSet.execute @bignoncedric
- (#5043) Improve support for DB2[z] empty table precondition @MichaelKern-IVV
- (#5424) Moved saved\_state/compareGenerateSql.. directory from java source to resources bundle @MalloD12
- (#5462) map testcontainers to random available host port @StevenMassaro
- (#5457) prevent multiple databases in test classes @StevenMassaro
- (#5416) do not clear a subset of MDC keys when scope exits (DAT-16500) @StevenMassaro
- (#5417) switch integration tests to use h2 where possible (DAT-16015) @StevenMassaro
- (#5347) Added extra space for command help arguments display DAT-13864 @wwillard7800

## Bug Fixes
- (#5522) MariaDB boolean: back to TINYINT(1) instead of TINYINT (MySQL) @famod
- (#5524) Don't execute CustomSqlChanges to generate logs @Alf-Melmac
- (#5498) Add missing OSGI settings @filipelautert
- (#5391) fix SQLFileChange.generateCheckSum() to calculate checksum without property substitution @jglass524
- (#5398) Fix issue #3516 addColumn ignores deleteCascade=true @andreiyusupau
- (#5479) do not skip over duplicate tags when doing rollback (DAT-16277) @StevenMassaro
- (#5484) Workaround failing test containers startup for mysql by falling back to previous version. @abrackx
- (#5397) Fix DatabaseFactory db loading when Database implementation is specified (fix for Issues 5371 \& 5396 ) @dhsmith1001
- (#5202) 4464 fix generated default column value using in PostgreSQL and Oracle for char/clob data types @LonwoLonwo
- (#5350) Fix getSerializableFieldValue when dealing with rollback object @MalloD12
- (#5414) Fix NPE in generateChangelog and diffChangelog DAT-16534 @wwillard7800
- (#5267) fix #5266: comma separated dbms-attribute for createProcedure-change triggers validation-check @jclohmann

## Security, Driver and Other Updates
- (#5447) Bump org.slf4j:slf4j-jdk14 from 2.0.9 to 2.0.11 @dependabot
- (#5454) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.10.2 to 3.11.0 @dependabot
- (#5433) Bump org.firebirdsql:firebird-testcontainers-java from 1.3.0 to 1.4.0 @dependabot
- (#5432) Bump org.assertj:assertj-core from 3.24.2 to 3.25.1 @dependabot
- (#5418) Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.12.1 @dependabot
- (#5409) Bump org.mariadb.jdbc:mariadb-java-client from 3.2.0 to 3.3.2 @dependabot
- (#5333) Bump net.snowflake:snowflake-jdbc from 3.14.3 to 3.14.4 @dependabot
- (#5287) Bump org.firebirdsql.jdbc:jaybird from 5.0.2.java8 to 5.0.3.java8 @dependabot
- (#5289) Bump org.xerial:sqlite-jdbc from 3.43.2.2 to 3.44.1.0 @dependabot
- (#5393) Bump actions/upload-artifact from 3 to 4 @dependabot
- (#5392) Bump actions/download-artifact from 3 to 4 @dependabot
- (#5313) Bump org.liquibase.ext:liquibase-sdk-maven-plugin from 0.10.22 to 0.10.23 @dependabot
- (#5311) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.6.3 @dependabot
- (#5306) Bump targetMavenVersion from 3.9.5 to 3.9.6 @dependabot
- (#5286) Bump org.codehaus.mojo:build-helper-maven-plugin from 3.4.0 to 3.5.0 @dependabot
- (#5275) Bump com.opencsv:opencsv from 5.8 to 5.9 @dependabot
- (#5269) Bump org.testcontainers:testcontainers-bom from 1.19.1 to 1.19.3 @dependabot


Changes in version 4.25.1 (2023.12.18)

### Liquibase 4.25.1 is a patch release

## Notable Changes

### [PRO]
#### Observability: Update Reports
* These reports give you insights into the status of your database and enable you to quickly find and resolve errors in your automation pipeline. These reports can also help you detect patterns of failures that you can catch with Quality Checks or use to inform internal training and education for your teams.
* Learn more about [Update Reports](https://docs.liquibase.com/tools-integrations/observability/operation-reports-update-report.html)

#### Observability: Drift Report extended to diffchangelog command
* With our new HTML format, you can quickly see the differences between databases, including detailed object differences. This easy-to-read and shareable report makes it faster than ever to detect and fix database drift.
* Learn more [Drift Reports](https://docs.liquibase.com/drift-reports)

#### Convenience: new `liquibase connect` command
*  A new command to test your database's url, username, and password are all configured correctly and that Liquibase can reach your database -- and no changelog required.
* Learn more [liquibase connect command](https://docs.liquibase.com/commands/change-tracking/connect.html)

#### Convenience: Global endDelimiters
* Global endDelimiters decrease the friction of incorporating work from different teams and save you time from the manual process of updating existing code.
* Learn more [Global endDelimiters](https://docs.liquibase.com/parameters/pro-global-end-delimiter.html)

## [PRO]
### Changes and Bug Fixes
- (#1417) DAT-16405: make report arguments visible on update-family commands by StevenMassaro
- (#1361) DAT-16064: Added test for exception details by wwillard7800
- (#1420) DAT-16429: Handle no license key in checks run command by wwillard7800
- (#1411) DAT-16063: include changeset identifier in log message for failing comment removal by StevenMassaro
- (#1408) DAT-15379: Updated pattern matching for 'USE DATABASE' statements by filipelautert
- (#1404) DAT-16157: do not upgrade checks file if autoUpdate is off by StevenMassaro
- (#1390) DAT-14570: add checks run results to MDC by StevenMassaro
- (#1401) DAT-16322: add liquibase connect command by StevenMassaro
- (#1398) DAT-16318: Handle rollback changes during modifyChangeSets logic by wwillard7800
- (#1389) DAT-16207: Styled update reports by abrackx
- (#1383) DAT-16136: expand TableMustHaveAComment check to check changelogs by StevenMassaro
- (#1366) DAT-15394: Generate report for diff-changelog by abrackx
- (#1387) Init checksSettingsFiles list to avoid NPE by wwillard7800
- (#1364) DAT-15404: Tweak endDelimiter name and remove hidden flag by wwillard7800
- (#1351) DAT-15640: Report for updateToTag by wwillard7800
- (#5366) add duplicatedChangesets to MDC (DAT-16452) @StevenMassaro
- (#1400) DAT-16268: Fix unexpected objects verbiage by abrackx
- (#1342) Fixes problematic V8 checksums for pro CreateFunctionChange by filipelautert


## [Community]

### New Features
- (#5186) Adding exception details key and implementation DAT-16064 @wwillard7800
- (#5323) Updated PrimaryKeyExistsPrecondition to require table name for H2 databases @filipelautert
- (#5268) Rework update summary to support reporting, add new update report fields (DAT-16207) @abrackx
- (#5130) Update MySQL boolean behaviour from TinyInt(1) to TinyInt @MalloD12
- (#5300) output entire exception in StandardServiceLocator (DAT-16305) @StevenMassaro
- (#5131) Allows to set older checksum versions for testing purposes @filipelautert
- (#5151) Bump com.oracle.database.jdbc:ojdbc8 from 19.20.0.0 to 19.21.0.0 @dependabot
- (#5166) Exclude QUEUE tables from snapshoting @filipelautert
- (#5232) Show a better message if a boolean configuration argument has bad input DAT-16276 @wwillard7800
- (#5167) Added tag attribute to update report parameters DAT-15640 @wwillard7800
- (#4577) SQL Anywhere: Recompile all views after last change of update @mkarg
- (#5117) Implementing a ChangeSetService for modification of model objects DAT-16079 @wwillard7800
- (#4584) Allow changing default UI service + change Spring default UI service allowing log level control @filipelautert
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#5077) showSummaryOutput property added for update command @MalloD12
- (#4991) Update MySQL default value handling to allow defaultValueComputed on MySQL 5.7 @Axel-1
- (#5042) Makes picocli dependency optional for core @filipelautert
- (#5041) add rollback-to-date report (DAT-15660) @StevenMassaro
- (#5045) add rollback-count report (DAT-15659) @StevenMassaro
- (#5047) show failed changesets in verbose show-summary output (DAT-15141) @StevenMassaro
- (#4301) Simplified expressions, removed redundant expressions, fixed javadocs @anton-erofeev
- (#4104) Support system properties as a way of providing configuration options to the CLI @jccampanero
- (#4919) Add '@Deprecated' annotation to update() methods @tati-qalified
- (#4996) Check for other duplicate JAR files in classpath DAT-15963 @wwillard7800
- (#4463) Split calculate-checksum parameter changeSetIdentifier into changeSetPath / changesetId / changeSetAuthor  @JulienMa94
- (#4904) add empty mdc values to all commands (DAT-15671) @StevenMassaro

## Bug Fixes
- (#5305) DAT-16354: fix reading snapshots when columns array does not exist in an index @StevenMassaro
- (#5348) Make message grammar correct @wwillard7800
- (#5341) Don't execute CustomTaskChanges twice @filipelautert
- (#5283) [4.24 Regression] Checksum error while performing update and then rollback with a changelog parameter - Fix for issue #5278 @ebussieres
- (#5293) Disable Derby shutdown in Spring Boot context @tleipzig
- (#5296) Global flag to restore behaviour of not failing on duplicated changeset identifiers  @filipelautert
- (#5315) Allow DiffResults to be reused in pipeline after running DiffChangelogCommandStep (DAT-16374) @abrackx
- (#5282) Fix #5271: ColumnExistsPrecondition throws error when table is missing @Januson
- (#5291) Run all Liquibase.rollback commands inside scope. @filipelautert
- (#5288) Add missing classes to osgi.serviceloader @filipelautert
- (#5108) Improve SQL parsing of character literals (quoted strings) @erasmussen-first
- (#5156) Decode encoded URLs from Spring resources @Ayrossi
- (#5166) Exclude QUEUE tables from snapshoting @filipelautert
- (#5249) Fixed query for actual data type for column @MalloD12
- (#5235) Fix calculateCheckSum issue when using Liquibase API method @MalloD12
- (#5172) Search ran changeset by key @n-13
- (#5150) Fixes problematic V8 checksums for pro CreateFunctionChange @filipelautert
- (#5165) Do not warn when env var matches argument alias (DAT-16117) @abrackx
- (#5099) Apply SQL visitors to prepared SQL @mches
- (#5141) Fix Liquibase changeset relative path check @filipelautert
- (#5134) Makes sure that precondition onErrorMessage and onFailMessage are logged when an error happens @filipelautert
- (#5143) load services using ServiceLocator if allInstances is empty @yairogen
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#4801) CreateIndex associatedWith property deserialization issue @spacepost
- (#5127) 5126 fix extra column info for mariadb database @LonwoLonwo
- (#5122) Fix Liquibase.validate scope execution. @filipelautert
- (#5078) Fix Liquibase.rollback scope execution @filipelautert
- (#5090) Fixed changelog parsing performance issue @filipelautert
- (#4293) Fix DB2 integration tests DAT-13113 @wwillard7800
- (#4424) Fix custom SQL generation issue - Github issue 4369 @wwillard7800
- (#5062) Modify MSSQL query for when obtaining autoincrement column information GH-4719 @wwillard7800
- (#5054) Handle duplicates of the commercial JAR DAT-16059 @wwillard7800
- (#5039) Add changelog file path to upToDateFastCheck cache key (#4891) @ggwadera
- (#4994) execute-sql command logic updated to not display select columns sorted @MalloD12
- (#4664) Fixed: #4662 - PostgreSQL: Doesn't support (n CHAR) syntax, but only (n) syntax. @mkarg
- (#5064) Handle some potential NPEs  @wwillard7800
- (#5028) Fix some typos. @asashour
- (#4754) Corrected determination of the DB2 version for the support of BOOLEAN columns. (patch for #4723) @haltenwe
- (#4549) generateChangelog creates crippled view definition SQL @mkarg
- (#4985) Fix liquibase bat @erasmussen-first
- (#4995) [DAT-16006] Fixing v8 Checksum calculation issue when using sql dbms attribute @filipelautert
- (#4988) Do not remove relation attribute for column if the relation object has a snapshot ID DAT-15709 @wwillard7800
- (#5007) Handle CREATE OR ALTER VIEW when replaceIfExists = true DAT-14147 @wwillard7800
- (#5009) Do not convert if global flag is false DAT-15745 @wwillard7800
- (#4945) Filter additional credential-like strings in the URL sanitization process DAT-9973 @wwillard7800
- (#567) Improve deferrable validation for AddForeignKey constraints generator @alero
- (#5101) Remove a forgotten `.` in `README.md` @Benjamin-Loison
- (#4959) Remove unnecessary conditions in IndexComparator @asashour

## Security, Driver and Other Updates
- (#5368) Bump liquibase/build-logic from 0.5.7 to 0.5.8 @dependabot
- (#5325) Bump org.postgresql:postgresql from 42.7.0 to 42.7.1 @dependabot
- (#5260) Remove Apache Derby test dependency from pom.xml @dependabot
- (#5310) Bump org.mockito:mockito-core from 5.7.0 to 5.8.0 for java 11+ tests @dependabot
- (#5187) Bump actions/cache from 3.3.1 to 3.3.2 @dependabot
- (#5169) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.10.1 to 3.10.2 @dependabot
- (#5151) Bump com.oracle.database.jdbc:ojdbc8 from 19.20.0.0 to 19.21.0.0 @dependabot
- (#5168) Bump maven-surefire-plugin.version from 3.1.2 to 3.2.2 @dependabot
- (#5162) Bump org.junit:junit-bom from 5.10.0 to 5.10.1 @dependabot
- (#5161) Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1 @dependabot
- (#5279) Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.1.2 to 3.2.2 @dependabot
- (#5173) Bump net.snowflake:snowflake-jdbc from 3.14.1 to 3.14.3 @dependabot
- (#5250) Bump net.java.dev.javacc:javacc from 7.0.12 to 7.0.13 @dependabot
- (#5251) Bump com.ibm.db2:jcc from 11.5.8.0 to 11.5.9.0 @dependabot
- (#5261) Bump org.postgresql:postgresql from 42.6.0 to 42.7.0 @dependabot
- (#5241) Bump liquibase/build-logic from 0.4.7 to 0.5.7 @dependabot
- (#5065) Bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11 @dependabot
- (#5094) Bump org.glassfish.jaxb:jaxb-runtime from 4.0.3 to 4.0.4 @dependabot
- (#5095) Bump org.glassfish.jaxb:jaxb-core from 4.0.3 to 4.0.4 @dependabot
- (#5140) Bump org.xerial:sqlite-jdbc from 3.43.0.0 to 3.43.2.2 @dependabot
- (#4989) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 3.0.0 to 3.0.2 @dependabot
- (#5020) Bump targetMavenVersion from 3.9.4 to 3.9.5 @dependabot
- (#4918) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.0 @dependabot
- (#5096) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.9.0 to 3.10.1 @dependabot
- (#5135) Update installer JDK @filipelautert
- (#5026) Bump org.jboss.weld.se:weld-se-core from 5.1.1.Final to 5.1.2.Final @dependabot
- (#4839) Bump actions/checkout from 3 to 4 @dependabot
- (#4914) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.9.1.2184 to 3.10.0.2594 @dependabot
- (#5001) Bump org.testcontainers:testcontainers-bom from 1.19.0 to 1.19.1 @dependabot
- (#4860) Bump actions/cache from 3.3.1 to 3.3.2 @dependabot
- (#4866) Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.0 to 3.4.1 @dependabot
- (#4949) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 @dependabot
- (#4929) Bump com.h2database:h2 from 2.2.222 to 2.2.224 @dependabot


Changes in version 4.25.0 (2023.11.09)

### Liquibase 4.25.0 is a major release

## New Features

- (#4577) SQL Anywhere: Recompile all views after last change of update @mkarg
- (#5117) Implementing a ChangeSetService for modification of model objects DAT-16079 @wwillard7800
- (#4893) Quality Checks Packages (DAT-15553) @StevenMassaro
- (#4584) Allow changing default UI service + change Spring default UI service allowing log level control @filipelautert
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#5077) showSummaryOutput property added for update command @MalloD12
- (#4991) Update MySQL default value handling to allow defaultValueComputed on MySQL 5.7 @Axel-1
- (#5042) Makes picocli dependency optional for core @filipelautert
- (#5041) add rollback-to-date report (DAT-15660) @StevenMassaro
- (#5045) add rollback-count report (DAT-15659) @StevenMassaro
- (#5047) show failed changesets in verbose show-summary output (DAT-15141) @StevenMassaro
- (#4301) Simplified expressions, removed redundant expressions, fixed javadocs @anton-erofeev
- (#4104) Support system properties as a way of providing configuration options to the CLI @jccampanero
- (#4919) Add '@Deprecated' annotation to update() methods @tati-qalified
- (#4996) Check for other duplicate JAR files in classpath DAT-15963 @wwillard7800
- (#5012) DAT-15755 - Sonar issues fix @MalloD12
- (#4463) Split calculate-checksum parameter changeSetIdentifier into changeSetPath / changesetId / changeSetAuthor  @JulienMa94
- (#5019) [DAT-15756] Fix sonar blocker warnings @filipelautert
- (#4904) add empty mdc values to all commands (DAT-15671) @StevenMassaro
- (#4984) DatabaseTestSystem: commit after executing statement @StevenMassaro

## Bug Fixes

- (#5165) Do not warn when env var matches argument alias (DAT-16117) @abrackx
- (#5099) Apply SQL visitors to prepared SQL @mches
- (#5141) Fix Liquibase changeset relative path check @filipelautert
- (#5134) Makes sure that precondition onErrorMessage and onFailMessage are logged when an error happens @filipelautert
- (#5143) load services using ServiceLocator if allInstances is empty @yairogen
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#4801) CreateIndex associatedWith property deserialization issue @spacepost
- (#5127) 5126 fix extra column info for mariadb database @LonwoLonwo
- (#5122) Fix Liquibase.validate scope execution. @filipelautert
- (#5078) Fix Liquibase.rollback scope execution @filipelautert
- (#5090) Fixed changelog parsing performance issue @filipelautert
- (#4293) Fix DB2 integration tests DAT-13113 @wwillard7800
- (#4424) Fix custom SQL generation issue - Github issue 4369 @wwillard7800
- (#5062) Modify MSSQL query for when obtaining autoincrement column information GH-4719 @wwillard7800
- (#5054) Handle duplicates of the commercial JAR DAT-16059 @wwillard7800
- (#5039) Add changelog file path to upToDateFastCheck cache key (#4891) @ggwadera
- (#4994) execute-sql command logic updated to not display select columns sorted @MalloD12
- (#4664) Fixed: #4662 - PostgreSQL: Doesn't support (n CHAR) syntax, but only (n) syntax. @mkarg
- (#5064) Handle some potential NPEs  @wwillard7800
- (#5028) Fix some typos. @asashour
- (#4754) Corrected determination of the DB2 version for the support of BOOLEAN columns. (patch for #4723) @haltenwe
- (#4549) generateChangelog creates crippled view definition SQL @mkarg
- (#4985) Fix liquibase bat @erasmussen-first
- (#4995) [DAT-16006] Fixing v8 Checksum calculation issue when using sql dbms attribute @filipelautert
- (#4988) Do not remove relation attribute for column if the relation object has a snapshot ID DAT-15709 @wwillard7800
- (#5007) Handle CREATE OR ALTER VIEW when replaceIfExists = true DAT-14147 @wwillard7800
- (#5009) Do not convert if global flag is false DAT-15745 @wwillard7800
- (#4982) DAT-15880 @sayaliM0412
- (#4928) CodeQL scan issue fixes @MalloD12
- (#4945) Filter additional credential-like strings in the URL sanitization process DAT-9973 @wwillard7800
- (#567) Improve deferrable validation for AddForeignKey constraints generator @alero
- (#5101) Remove a forgotten `.` in `README.md` @Benjamin-Loison
- (#4959) Remove unnecessary conditions in IndexComparator @asashour
- (#5185) generate deployment ID for all update family commands (DAT-16240) @StevenMassaro
- (#5182) Invoke database.commit only if needed (DAT-16225) @filipelautert

## Security, Driver and Other Updates

- (#5095) Bump org.glassfish.jaxb:jaxb-core from 4.0.3 to 4.0.4 @dependabot
- (#5140) Bump org.xerial:sqlite-jdbc from 3.43.0.0 to 3.43.2.2 @dependabot
- (#4989) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 3.0.0 to 3.0.2 @dependabot
- (#5020) Bump targetMavenVersion from 3.9.4 to 3.9.5 @dependabot
- (#4918) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.0 @dependabot
- (#5096) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.9.0 to 3.10.1 @dependabot
- (#5135) Update installer JDK @filipelautert
- (#4927) DAT-15922 FOSSA Support @jnewton03
- (#5026) Bump org.jboss.weld.se:weld-se-core from 5.1.1.Final to 5.1.2.Final @dependabot
- (#4839) Bump actions/checkout from 3 to 4 @dependabot
- (#4914) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.9.1.2184 to 3.10.0.2594 @dependabot
- (#5001) Bump org.testcontainers:testcontainers-bom from 1.19.0 to 1.19.1 @dependabot
- (#4860) Bump actions/cache from 3.3.1 to 3.3.2 @dependabot
- (#4866) Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.0 to 3.4.1 @dependabot
- (#4949) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 @dependabot
- (#4929) Bump com.h2database:h2 from 2.2.222 to 2.2.224 @dependabot


Changes in version 4.24.0 (2023.09.28)

### Liquibase 4.24.0 is a major release

## New Features

- (#4574) Implement showSummaryOutput parameter @EvaristeGalois11
- (#4395) Improve update summary usability @EvaristeGalois11
- (#4697) Replacing special constants specific to SQL Anywhere by commonly supported JDBC Escape Functions @mkarg
- (#4805) include tag in history tabular output (DAT-15244) @StevenMassaro
- (#4692) add update report (DAT-15576) @StevenMassaro
- (#4352) Adding support to parameters referenceLiquibaseCatalogName and referenceLiquibaseSchemaName. @filipelautert
- (#3978) Introducing removeChangeSetProperty feature  @kirangodishala
- (#4461) support concurrent build in maven plugin @piotrwielgolaski-tomtom
- (#4537) SQL Anywhere: Switching off view definition checks to allow creation of dependent views even if dependency does not yet exist. @mkarg
- (#4658) Upgrade installer version to 17.0.8+7 @filipelautert
- (#4402) New Feature: Add an endsWithFilter attribute to includeAll @jasonlyle88
- (#4387) Use more parameter markers for DB2z catalogue queries @MichaelKern-IVV
- (#4148) maven-plugin: Support increasing maven log level @mensinda
- (#4534) Fix database test system external driver load. @filipelautert
- (#4660) Add labels/contexts arguments to diffChangelog and generateChangelog change sets DAT-14793 @wwillard7800
- (#4680) Allow both include and includeAll to appear in modifyChangeSets tag @wwillard7800
- (#4659) DAT-15646 DevOps - Reusable Debian Package Creation Workflow Migration @jandroav
- (#4605) custom log data key-value pairs are injected multiple times per operation (DAT-15572) @StevenMassaro
- (#4628) DAT -15524 Clear-Checksums implementation using command scope @MalloD12
- (#4905) Check for duplicate core and commercial JARs DAT-15837  @wwillard7800
- (#4799) parameter binding for DB2luw to improve performance and other trifles @MichaelKern-IVV
- (#4926) Adding properties to the update report template to allow all the update family commands to use reports DAT-15638 @wwillard7800
- (#4688) MySQL/MariaDB add extra info for date/timestamp columns for the diffChangeLog @filipelautert
- (#4579) Use native oracle BOOLEAN for >=23c | fixes #4576 @mensinda
- (#4834) Optimise the logic for tableIsEmpty check constraint  @filipelautert
- (#4729) DAT-15603 Attach Azure jar to liquibase release artifacts @jandroav

## Bug Fixes

- (#4827) Handle XML data types for DB2 DAT-12878 @wwillard7800
- (#4812) More consistent message when included file is empty DAT-15551 @wwillard7800
- (#4670) Fixed: Fails to detect LONG VARCHAR as CLOB and LONG BINARY as BLOB @mkarg
- (#4648) Fixed: SQL Anywhere reports fancy precision with LONG NVARCHAR @mkarg
- (#4845) Fix liquibase.bat java home handling under Windows @filipelautert
- (#4726) Allow update command to handle additional properties that are passed on the command line DAT-15769 @wwillard7800
- (#4841) Update README link to contribution docs @nwcm
- (#4589) Fixes JdbcExecutor's uses of RawParameterizedSqlStatement @andrew-simmons
- (#4683) Fixed: #4682 - MSSQL: Doesn't support (n CHAR) syntax, but only (n) syntax @mkarg
- (#4798) Fix poor performance of listunrunchangesets @filipelautert
- (#4803) Fix liquibase 4.23.1 won't work on windows if there is no JAVA\_HOME system variable set @filipelautert
- (#4502) Fixed: generateChangelog creates invalid changelog @mkarg
- (#4772) Make sure that the correct argument name is displayed in help for commands with aliases DAT-15681 @wwillard7800
- (#4441) Fix primaryKeyTablespace when attribute value is an empty string @delayk
- (#4651) Fixing issue #4650 @mkarg
- (#4404) enable REPLACE OR EXISTS for procedures on DB2 @MichaelKern-IVV
- (#4541) remove dependency on javax.activation @filipelautert
- (#4520) Fixed: SQL Anywhere reports fancy precision with DOUBLE, SMALLINT and TINYINT @mkarg
- (#4609) fix standardlockservice when changelog-lock-wait-time-in-minutes is set to 0 and lock does not exist in database @jgarec
- (#4591) Added changelog parameters to rollback commands @blaghed
- (#4531) SQL Anywhere does not support "NO ACTION", but reports it for "SET DEFAULT" foreign keys @mkarg
- (#4653) Allow DatabaseChangelog object to be passed as a parameter to DatabaseChangelogCommandStep @filipelautert
- (#4613) Fix sequence from serial pre-condition validation for Postgresql @filipelautert
- (#4507) Fixing Issue #4429: SQL Anywhere: generateChangeLog fails when column's default value is an expression (e. g. Unexpected error running Liquibase: Unknown boolean value: if "mycol" is null then 0 else 1 endif) @mkarg
- (#4090) Fixes MySQL BIT / TINYINT(1) Boolean Behaviours @nwcm
- (#4052) Fix H2 database case-sensitive identifier issues + upgrades JUnit tests cases to version 5 @mches
- (#4709) Fix Regression in 4.23.1 where Log table is created multiple times for H2 and HSQLDB @filipelautert
- (#4480) not to use class field for thread safe. @Wenkee
- (#4515) Fixed: LONG VARCHAR DEFAULT NULL instead of LONG VARCHAR DEFAULT 'NULL' @mkarg
- (#4534) Fix database test system external driver load. @filipelautert
- (#4702) DAT-15602 @sayaliM0412
- (#4689) Make operation start time be UTC DAT-15593 @wwillard7800
- (#4585) DAT-15470 @sayaliM0412
- (#4611) [DAT-15439] Fix adding redundant semicolon character for generateChangelog for MSSQL @vitaliimak
- (#4625) Handle leading spaces in formatted SQL changelog  DAT-15221 @wwillard7800
- (#4672) DAT-15602 @sayaliM0412
- (#4654) Correctly escape spaces in table name when it is used in a query DAT-11529 @wwillard7800
- (#4956) Fix typo in SqlGeneratorFactory @asashour
- (#4937) [DAT-15924] Handle AbstractSQLChange runWith checksum v8 variants @filipelautert
- (#4900) Enable scoped value to be looked up from Java properties loaded from the command line -D properties DAT-15668 @wwillard7800
- (#4725) Change type of `RowCountPrecondition#expectedRows` from `Integer` to `Long` (#1549) @kzander91
- (#4762) Fetch ran change sets before updating check sums @hpoettker
- (#4598) SQL Anywhere allows two foreign keys to differ only by name @mkarg
- (#4621) Fixed: Issue #4620 - "SQL Anywhere DOES support CREATE OR REPLACE VIEW, despite what the source code says!" @mkarg
- (#4705) DAT-15338 Refactor connection string patterns to allow extensions to extend they @vitaliimak
- (#4902) obfuscate user/pass in urls entered in MDC (DAT-15860) @StevenMassaro
- (#4862) DAT-15821 :: OperationOutcomeErrorMsg field added to Operation Info @MalloD12
- (#4909) Rollbacks Oracle Driver to LTS series 19.x  @filipelautert
- (#4853) update truelicense text @suryaaki2
- (#4854) Fix LabelExpression constructors when using array or collection @MalloD12
- (#4859) Fix regression in recognizing formatted SQL file DAT-15865  @wwillard7800
- (#4846) do not attempt to recreate DBCL when it is specified with mixed case (DAT-15570) @StevenMassaro

## API Breaking Changes

- (#4785) change MdcManager API to accept Map\<String, Object> instead of Map\<String, String> (DAT-15799) @StevenMassaro

## Security, Driver and Other Updates

- (#4717) Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.3.0 to 3.4.0 @dependabot
- (#4838) Bump groovy.version from 2.5.22 to 2.5.23 @MalloD12
- (#4752) Bump ant.version from 1.10.13 to 1.10.14 @dependabot
- (#4784) Bump org.xerial:sqlite-jdbc from 3.42.0.0 to 3.43.0.0 @dependabot
- (#4768) Bump info.picocli:picocli from 4.7.4 to 4.7.5 @dependabot
- (#4747) Bump net.snowflake:snowflake-jdbc from 3.14.0 to 3.14.1 @dependabot
- (#4828) Bump com.h2database:h2 from 2.2.220 to 2.2.222 @dependabot
- (#4767) Bump org.junit:junit-bom from 5.9.3 to 5.10.0 @dependabot
- (#4601) Bump targetMavenVersion from 3.9.2 to 3.9.4 @dependabot
- (#4793) Bump com.microsoft.sqlserver:mssql-jdbc from 12.2.0.jre8 to 12.4.1.jre8 @dependabot
- (#4792) Bump org.junit.jupiter:junit-jupiter-params from 5.9.3 to 5.10.0 @MalloD12
- (#4529) Bump com.opencsv:opencsv from 5.7.1 to 5.8 @dependabot
- (#4791) Bump whelk-io/maven-settings-xml-action from 20 to 21 @MalloD12
- (#4782) DAT-15790 add security reports @jnewton03
- (#4764) Bump org.yaml:snakeyaml from 2.0 to 2.2 @dependabot
- (#4477) Bump h2 from 2.1.214 to 2.2.220 in /liquibase-dist @dependabot
- (#4410) Bump xml-maven-plugin from 1.0.2 to 1.1.0 @dependabot
- (#4557) Bump net.snowflake:snowflake-jdbc from 3.13.32 to 3.14.0 @dependabot
- (#4829) Bump org.slf4j:slf4j-jdk14 from 2.0.7 to 2.0.9 @dependabot
- (#4940) Bump org.projectlombok:lombok from 1.18.28 to 1.18.30 @dependabot
- (#4766) Bump org.mariadb.jdbc:mariadb-java-client from 3.1.4 to 3.2.0 @dependabot
- (#4923) DAT-15922 add fossa license checking action @jnewton03


Changes in version 4.23.2 (2023.09.11)

### Liquibase 4.23.2 is a patch release

## Bug Fixes
- (#4870) Tweaked exception message for invalid formatted SQL file @wwillard7800
- (#4874) DAT-15857 - Fix for checksum upgrade in runWith change sets  @wwillard7800


Changes in version 4.23.1 (2023.08.09)

### Liquibase 4.23.1 is a patch release

## Notable Changes
### [PRO]
* Introduce two new commands: `set-labels` and `set-contexts` to batch update the labels or contexts on existing changesets. Use these to scale database DevOps by bulk updating your changesets with one command. Or consolidate changes from different teams with different coding standards to ensure adherence to current standards. Learn more at https://docs.liquibase.com

## New Features

* (#4476) [DAT-15258] Ensure Mongo extension doesnt control createIndex/dropIndex checksums for non-Mongo DBs. @filipelautert
* (#4506) Add command line args to scope DAT-15396 @wwillard7800
* (#4539) DAT-15417 PR for setLabels/setContexts build @wwillard7800
* (#4599) run tests on any branch @sayaliM0412
* (#4538) add warning message about using catalogs in Postgres (DAT-14933) @StevenMassaro
* (#4361) [DAT-14970] FormattedSqlChangeLogParser refactoring @vitaliimak
* (#4197) Consume CORE and PRO packages from GitHub Package Manager (DAT-14615) @sayaliM0412
* (#4483) Add ability to set labels and contexts in included changelogs DAT-15202 @wwillard7800
* (#4485) DAT-14929: include rows affected in update command console output @StevenMassaro
* (#4321) DAT-6585 Apt-based Linux package @jandroav
* (#4317) Reworked rollback to tag logic to look for use first occurrence of tag DAT-13057 @wwillard7800
* (#4375) switch contexts argument to contextFilter (DAT-13423) @StevenMassaro
* (#4162) Allow whitespace within a foreign key statement @sideeffffect
* (#4407) improve error message when no sql generators can be found (DAT-14688) @StevenMassaro
* (#4420) add additional MDC properties to update and diff mojos (DAT-14672) @StevenMassaro
* (#4219) Fixed CommandLineUtilsTest for german locale @nvoxland
* (#4450) Fix deploymentId not populating after locking @wwillard7800
* (#4409) DAT-15030 @sayaliM0412


## Changes and Bug Fixes

### [PRO]

* DAT-14909: Add changelogFile back to rollback-one/rollback-on-error mdc success messages by @abrackx in https://github.com/liquibase/liquibase-pro/pull/1024
* DAT-14751 fix issues with nested flow files and logging by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1036
* DAT-13397: Respect rollback-script argument for rollback-one-update command by @abrackx in https://github.com/liquibase/liquibase-pro/pull/1037
* DAT-13423: switch contexts argument to contextFilter by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1043
* DAT-14694: Add Pro Tag and Pro Rollback commands by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1013
* DAT-13398: Respect contexts/labels on update-one-changeset, add changelogFile required parameter. by @abrackx in https://github.com/liquibase/liquibase-pro/pull/1042
* DAT-14448 Implemented user metadata for the Flow file and cleaned up tests by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/961
* DAT-9715: change sql parser exception log level to fine by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1079
* DAT-14791 Implement ability to exec shell commands within variables by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1059
* DAT-12252: remove unusable pro arguments by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1081
* DAT-14455: customize checks run output with --checks-output arg by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1078
- fix flow command test for windows by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1098
* DAT-8278: replace JSqlParserException with custom exception class by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1080
* DAT-15202 Implement ability to modify labels in included changelogs by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1083
* DAT-14615: Consume CORE and PRO artifact from GPM by @sayaliM0412 in https://github.com/liquibase/liquibase-pro/pull/963
* DAT-9678: set severity exit code for SQL parser fails by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1100
* DAT-14615: move repositories block into profile activated only on GHA by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1122
* DAT-15384: sort checks run console output by the severity order specified in checks-output arg by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1101
* DAT-15414 Rework to allow bash exec on Windows by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1086
* DAT-15417 Added DBMS argument and refactored by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/1104
* DAT-15610: resolve license generator build failure that occurs on both-repo PRs by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1157


### [Community]

* (#4370) add liquibaseHostName MDC key (DAT-14956) @StevenMassaro
* (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
* (#4353) Add support for valueSequenceNext in Snowflake @jccampanero
* (#4308) Fix issue #3317 - StringIndexOutOfBoundsException if date is set to 1970-01-01 @Mika2147
* (#4400) Fix ordering problem in ShowSummaryUtil. fixes #4399 @mensinda
* (#4416) Normalize path using static function for Strings rather than Path.nor… @ffffionn
* (#4533) decode URL encoded path in DirectoryPathHandler (DAT-15154) @StevenMassaro
* (#4581) DAT-15208 :: Changeset object added back to "Update command completed successfully" JSON @MalloD12
* (#4540) [DAT-15489] Fixes changelog-sync-to-tag ignores the tag if  it is already in database after 4.23.0 @filipelautert
* (#4499) Fixed #4489: SQL Anywhere incorrectly reports VARCHAR(n CHAR) as VARCHAR(n) @mkarg
* (#4089) Fix formatted SQL parse error when property has context, labels and global attributes @droy-sandbox
* (#4362) docs file fixes, link updates @adrian-velonis1
* (#4495) Do not throw exception when runWith is empty string (DAT-14316) @abrackx
* (#4496) throw validation error on missing sqlFile (DAT-14920) @StevenMassaro
* (#4490) fix format argument for history command (DAT-13382) @StevenMassaro
* (#4470) [DAT-15327] Fix dropAll clean up behavior. @filipelautert
* (#4508) [DAT-15383] Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
* (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
* (#4422) Fixed #3971: "SAP SQL Anywhere 17.0.11: Liquibase incorrectly reports that TIMESTAMP requested precision is longer than TIMESTAMP supported precision" @mkarg
* (#4453) Implements equals method on AbstractChange to make sure that we can compare Changes correctly @filipelautert
* (#4444) Improvements after 4230 @filipelautert
* (#4307) Fixes #3661 @farion
* (#4454) Fix changelogsync no longer generating deployment id. @abrackx
* (#4414) Fixes issue #4413: Undocumented IT requirement: Username "liquibase" @mkarg
* (#4417) Fixes issue #4415: "Wrong DDL syntax CREATE SEQUENCE ... AS ..." @mkarg
* (#4306) Fixes #3625 JAVA\_HOME Path when parenthesis are present @JulienMa94
* (#4450) Fix deploymentId not populating after locking @wwillard7800
* (#4228) #4227 fix for BOOLEAN with precision like BOOLEAN(1) @sfrevel
* (#4354) Make CreateTableStatement backward compatible @jccampanero
* (#4427) Fix update fast check behavior @MalloD12

## Security, Driver and Other Updates

* Bump ch.qos.logback:logback-classic from 1.4.7 to 1.4.9 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/1153
* (#4612) deprecate snyk in favor of github advanced security @jnewton03
* (#4378) Bump snowflake-jdbc from 3.13.32 to 3.13.33 @dependabot
* (#4368) Bump jaxb-runtime from 4.0.2 to 4.0.3 @dependabot
* (#4360) Bump jaybird from 5.0.1.java8 to 5.0.2.java8 @dependabot
* (#4334) Bump testcontainers-bom from 1.18.1 to 1.18.3 @dependabot
* (#4397) Bump maven-shade-plugin from 3.4.1 to 3.5.0 @dependabot
* (#4367) Bump jaxb-core from 4.0.2 to 4.0.3 @dependabot



Changes in version 4.23.0 (2023.06.22)

### Liquibase 4.23.0 is a major release

## Notable Changes
### [PRO]
* Introduce custom and pipeline specific fields and data, and exclude private data, into Structured Logs and into your Liquibase operations data stream, with new liquibase.customlogdata.yaml file.
* The flow, history, status, and version commands have been structured Logging enhancements for improved compatibility with automated monitoring and analysis tools.
* Learn more about Liquibase's Observability and Structured Logging capabilities to generate more meaningful reports and dashboards at https://docs.liquibase.com/observability

### [Community]
* Checksums upgraded to v9, which improves whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more.
 -- No action is required of users to benefit from this enhancement
 -- This release is backwards compatible with v8 checksums (found in 3.5 to 4.21.1 releases)
 -- Console message will inform you when your checksums have been updated
* Liquibase Hub de-commissioned and de-coupled from Liquibase operations. From 4.23.0 forward, Liquibase will make no Hub reporting attempts.

## [PRO] What's Changed
* Add or excluded custom user metadata to logs by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/956
* DAT-13292: Decomission hub by @abrackx in https://github.com/liquibase/liquibase-pro/pull/898 and https://github.com/liquibase/liquibase/pull/3996
* DAT-14121: add failOnError MDC and always show changesetOutcome MDC by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/945
* DAT-12946 disable snapshot generation for PRO objects for Redshift by @vitaliimak in https://github.com/liquibase/liquibase-pro/pull/933
* DAT-10024: show MDC when running --version by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/969
* DAT-14110 API ability to add user metadata to the Flow model by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/941
* Test with java 20 instead of 18 by @nvoxland in https://github.com/liquibase/liquibase-pro/pull/964
* DAT-13124  Finished with implementation of MDC for Flow command by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/954
* DAT-14163: mdc for status command by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/979
* DAT-14162: MDC for history command by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/981
* DAT-6620: Refactors rollbackOneUpdate, rollbackOneUpdateSql, rollbackOneChangeset, rollbackOneChangesetSql to use command framework by @abrackx in https://github.com/liquibase/liquibase-pro/pull/991
* DAT-13946 Fix issue with catalogName property not being honored by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/992
* DAT-14804: fix docs links by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/998
* fix/include_liquibase_version by @sayaliM0412 in https://github.com/liquibase/liquibase-pro/pull/1010
* DAT-13516: update-one-changeset command should ignore changesets with ignore=true set by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/997
* DAT-13283: improve join for snapshotting check constraints in MySQL by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/994
* DAT-14807: case-insensitive matching on keys by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/999
* DAT-13037 For rollback not required changes, do not complain about EmptyChange by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/984
* DAT-14283 Add SEARCH_PATH setting to run script for PsqlRunner by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/995
* DAT-14897: add check settings file DTO hidden parameter by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/1033
* liquibase-pro changetype metadata by @adrian-velonis1 in https://github.com/liquibase/liquibase-pro/pull/942
* DAT-14307: Append keep.path to psql logFile property to create log files in temp directory by @abrackx in https://github.com/liquibase/liquibase-pro/pull/1031
* DAT-12478 by @sayaliM0412 in https://github.com/liquibase/liquibase-pro/pull/1007
* DAT-15167 by @sayaliM0412 in https://github.com/liquibase/liquibase-pro/pull/1045


## [Community] What's Changed

* Add binary, varbinary and longvarbinary support for Snowflake https://github.com/liquibase/liquibase/pull/4226
* Liquibase should not fail when change log has only databaseChangeLog tag https://github.com/liquibase/liquibase/pull/4273
* Add v8 and v9 checksum support (DAT-14872) @StevenMassaro https://github.com/liquibase/liquibase/pull/4310
* Fix index descending column snapshot test by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4251
* add failOnError MDC and always show changesetOutcome MDC (DAT-14121) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4158
* DAT-12945: support JSON logging in the maven plugin by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4152
* show MDC when running --version (DAT-10024) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4218
* For SQL Server, if a delimiter has not been specified, then add one. DAT-13998 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4202
* Log when no changesets have been rolled back (DAT-11575) by @abrackx in https://github.com/liquibase/liquibase/pull/4209
* [DAT-6608] Refactors DropAll command as CommandStep by @filipelautert in https://github.com/liquibase/liquibase/pull/4171
* Test with java 20 instead of 18, as 18 is no longer supported by oracle by @nvoxland in https://github.com/liquibase/liquibase/pull/4208
* SQL Anywhere was never owned by Siebel, but only by SAP, Sybase, Powersoft, Watcom. by @mkarg in https://github.com/liquibase/liquibase/pull/4178
* Remove not using imported classes and packages in the source file. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3836
* Replace if statements with switch statements. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3720
* Delete unused comment code. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3666
* Code clean up around isUpToDateFastCheck  by @MalloD12 in https://github.com/liquibase/liquibase/pull/4016
* Refactor db-doc command to use command framework (DAT-6605) by @abrackx in https://github.com/liquibase/liquibase/pull/4238
* Implement autorollback for <empty/> and <output/> changes by @jccampanero in https://github.com/liquibase/liquibase/pull/4103
* execute-sql command refactor (DAT-6609) by @abrackx in https://github.com/liquibase/liquibase/pull/4217
* Fix "Running Changeset: " logs written directly to stdout instead of using the maven logger by @mensinda in https://github.com/liquibase/liquibase/pull/4157
* Improve Javadoc. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3841
* Remove fields that are not used or unreachable from the entry points. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3741
* Fix javadoc references, links and spaces. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3768
* Implement "author" command argument for diffChangelog command by @vitaliyg2 in https://github.com/liquibase/liquibase/pull/3990
* Prefer `ThreadLocalScopeManager` when working with Maven by @rogierslag in https://github.com/liquibase/liquibase/pull/4037
* Code cleanup: avoid re-calling methods by @arturobernalg in https://github.com/liquibase/liquibase/pull/3721
* Replace with Collections.singletonList(), Collections.emptyList(), or… by @arturobernalg in https://github.com/liquibase/liquibase/pull/3837
* add support for the TRAN keyword (T-SQL) by @AlexGruebel in https://github.com/liquibase/liquibase/pull/4099
* Switch to distribute jars generated by Java 11 allowing Jakarta cdi 4 upgrade by @filipelautert in https://github.com/liquibase/liquibase/pull/4119
* refactor future-rollback-sql family of commands (DAT-6610, DAT-6611, DAT-6612) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4243
* refactor mark-next-changeset-ran command family (DAT-6615, DAT-6616) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4253
* Add serialVersionUID to classes that implement Serializable. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3680
* mdc for status command (DAT-14163) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4259
* Refactor validate command (DAT-6643) by @abrackx in https://github.com/liquibase/liquibase/pull/4281
* Show MSSQL PRINT output by showing SQL Warnings if they exist DAT-8708 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4263
* add MDC for release locks outcome (DAT-14166) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4229
* refactor unexpected changesets command (DAT-6637) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4278
* DAT-6632: refactor snapshot-reference command by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4262
* refactor update-testing-rollback command (DAT-6640) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4282
* Make sure drop FK changes are first in the list generated by diffChangelog  DAT-14101 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4272
* Cleanup logging for releasing locks. by @abrackx in https://github.com/liquibase/liquibase/pull/4296
* Immutable fields changed to final for clarity by @arturobernalg in https://github.com/liquibase/liquibase/pull/3713
* MDC for history command (DAT-14162) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4260
* Refactors rollbackOneChangeSet, rollbackOneChangesetSql, rollbackOneUpdate, rollbackOneUpdateSql to use command framework. (DAT-6620) by @abrackx in https://github.com/liquibase/liquibase/pull/4275
* Adds back validation message to validate command (DAT-14859) by @abrackx in https://github.com/liquibase/liquibase/pull/4295
* Added filtering to the target database during diff.  Previously, only by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4279
* add custom MDC data to logs by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4180
* Upgrade build to use Maven 3.9.2 by @filipelautert in https://github.com/liquibase/liquibase/pull/4170
* fix docs links (DAT-14804) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4297
* Add support for Unicode roman numerals. by @jccampanero in https://github.com/liquibase/liquibase/pull/4110
* test improvements and add additional API to ChangeLogIterator (DAT-13516) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4294
* use latest mysql version in integration tests (DAT-13283) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4287
* Do not validate an ignored change set DAT-13141 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4283
* Test fix to drop DBCL DAT-14806 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4351
* runAlways should run regardless of checksum validation by @jccampanero in https://github.com/liquibase/liquibase/pull/4132
* Show warning message if the tag does not exist DAT-14046 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4323
* Created ChangeDefinitionTest by @nvoxland in https://github.com/liquibase/liquibase/pull/3784
* Fix liquibase.skip in maven plugin when activated in multithreaded build by @piotrwielgolaski-tomtom in https://github.com/liquibase/liquibase/pull/4022
* Don't try to create parent directory if it already exists by @wslaghekke in https://github.com/liquibase/liquibase/pull/4266
* Fix Custom ChangeExecListener Class Cast Exception by @filipelautert in https://github.com/liquibase/liquibase/pull/4271
* Sybase JDBC: Detecting current and some historic driver versions by @mkarg in https://github.com/liquibase/liquibase/pull/4179
* Fix inherited changelog properties by @airon-assustadus in https://github.com/liquibase/liquibase/pull/4267
* Add errorIfMissingOrEmpty attribute to ChangeLogProperty and ChangeLogInclude classes by @jasonlyle88 in https://github.com/liquibase/liquibase/pull/3901
* Add skipOnFileExists maven property for skipping plugin execution when a file exists by @mensinda in https://github.com/liquibase/liquibase/pull/3363
* Replace Statement by PreparedStament allowing the use of parameter markers on DB2z catalogue queries by @MichaelKern-IVV in https://github.com/liquibase/liquibase/pull/3813
* migrate ChangeLogHistoryServiceFactory to AbstractPluginFactory pattern by @piotrwielgolaski-tomtom in https://github.com/liquibase/liquibase/pull/4023
* Fix paths starting with dot dot by @filipelautert in https://github.com/liquibase/liquibase/pull/4380
* Fix ERROR: permission denied for sequence (in unrelated schema) #4048 by @joaocc in https://github.com/liquibase/liquibase/pull/4140


## Security, Driver and other updates

[Pro]

* Bump ojdbc8 from 21.9.0.0 to 21.10.0.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/1008
* Bump picocli from 4.7.1 to 4.7.3 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/974
* Bump maven-assembly-plugin from 3.4.2 to 3.6.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/985
* Bump jackson-module-jaxb-annotations from 2.15.0 to 2.15.1 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/986
* Bump jackson-dataformat-yaml from 2.15.0 to 2.15.1 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/987
* Bump jackson-databind from 2.14.2 to 2.15.1 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/988
* Bump jackson-annotations from 2.15.0 to 2.15.1 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/989
* Bump jackson-core from 2.15.0 to 2.15.1 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/990
* Bump flatten-maven-plugin from 1.4.0 to 1.5.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/975
* Bump actions/delete-package-versions from 3 to 4 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/1000
* Bump castlabs/get-package-version-id-action from 2.0 to 2.2 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/1001
* Bump hsqldb from 2.7.1 to 2.7.2 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/1017
* Bump maven-surefire-plugin from 3.0.0 to 3.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4222
* Bump surefire-junit4 from 3.0.0 to 3.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4221
* Bump picocli from 4.7.1 to 4.7.3 by @dependabot in https://github.com/liquibase/liquibase/pull/4154
* Bump castlabs/get-package-version-id-action from 2.1 to 2.2 by @dependabot in https://github.com/liquibase/liquibase/pull/4177


[oss]

* Bump junit-jupiter-params from 5.9.2 to 5.9.3 by @dependabot in https://github.com/liquibase/liquibase/pull/4183
* Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in https://github.com/liquibase/liquibase/pull/4215
* Bump maven-plugin-plugin from 3.8.1 to 3.8.2 by @dependabot in https://github.com/liquibase/liquibase/pull/4167
* Bump testcontainers-bom from 1.18.0 to 1.18.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4256
* Bump flatten-maven-plugin from 1.4.1 to 1.5.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4242
* Bump targetMavenVersion from 3.9.1 to 3.9.2 by @dependabot in https://github.com/liquibase/liquibase/pull/4254
* Bump build-helper-maven-plugin from 3.3.0 to 3.4.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4257
* Bump ojdbc8 from 21.9.0.0 to 23.2.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4106
* Bump mariadb-java-client from 3.1.3 to 3.1.4 by @dependabot in https://github.com/liquibase/liquibase/pull/4200
* Bump sqlite-jdbc from 3.41.2.1 to 3.41.2.2 in /liquibase-dist by @dependabot in https://github.com/liquibase/liquibase/pull/4300
* Bump snowflake-jdbc from 3.13.29 to 3.13.32 by @dependabot in https://github.com/liquibase/liquibase/pull/4315
* Bump maven-bundle-plugin from 5.1.8 to 5.1.9 by @dependabot in https://github.com/liquibase/liquibase/pull/4284
* Bump maven-assembly-plugin from 3.5.0 to 3.6.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4264
* Bump maven-plugin-plugin from 3.8.2 to 3.9.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4265
* Bump sqlite-jdbc from 3.41.2.1 to 3.42.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4298
* Bump hsqldb from 2.7.1 to 2.7.2 by @dependabot in https://github.com/liquibase/liquibase/pull/4333
* Bump picocli from 4.7.3 to 4.7.4 by @dependabot in https://github.com/liquibase/liquibase/pull/4348
* Bump weld-se-core from 5.1.0.Final to 5.1.1.Final by @dependabot in https://github.com/liquibase/liquibase/pull/4373
* Bump maven-surefire-plugin from 3.1.0 to 3.1.2 by @dependabot in https://github.com/liquibase/liquibase/pull/4356
* Bump maven-source-plugin from 3.2.1 to 3.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4292
* Bump gmavenplus-plugin from 2.1.0 to 3.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4303
* Bump spring.version from 5.3.27 to 5.3.28 by @dependabot in https://github.com/liquibase/liquibase/pull/4384
* Updates installer JVM version. by @filipelautert in https://github.com/liquibase/liquibase/pull/4233
* Upgrades snyk java version. by @filipelautert in https://github.com/liquibase/liquibase/pull/4286


## New Contributors
* @mkarg made their first contribution in https://github.com/liquibase/liquibase/pull/4178
* @mensinda made their first contribution in https://github.com/liquibase/liquibase/pull/4157
* @vitaliyg2 made their first contribution in https://github.com/liquibase/liquibase/pull/3990
* @rogierslag made their first contribution in https://github.com/liquibase/liquibase/pull/4037
* @piotrwielgolaski-tomtom made their first contribution in https://github.com/liquibase/liquibase/pull/4022
* @wslaghekke made their first contribution in https://github.com/liquibase/liquibase/pull/4266
* @airon-assustadus made their first contribution in https://github.com/liquibase/liquibase/pull/4267
* @joaocc made their first contribution in https://github.com/liquibase/liquibase/pull/4140

* ## [PRO] New Contributors
* @vitaliimak made their first contribution in https://github.com/liquibase/liquibase-pro/pull/933
* @adrian-velonis1 made their first contribution in https://github.com/liquibase/liquibase-pro/pull/1035
* @loragriffin made their first contribution in https://github.com/liquibase/liquibase-pro/pull/1044


### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.22.0...v4.23.0



Changes in version Liquibase v4.22.0 (2023.05.10)

### Liquibase v4.22.0 is a major release


## Notable Changes
###
The checksum changes in Liquibase version 4.22.0 is a major change, which improves whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more. New checksums are silently recalculated upon the initial run of Liquibase 4.22.0 or greater.
No actions is required for the vast majority of users. However, for users who rely on the detection of a changed changeset or have complex workflows, it is recommended that you run liquibase clear-checksums with your current version BEFORE your first operation using the new 4.22.0 version against a database. Learn more at https://docs.liquibase.com/concepts/changelogs/changeset-checksums.html

## API Breaking Changes
* DAT-13285 - Fix CheckSum generation issues + improvement by @filipelautert in https://github.com/liquibase/liquibase/pull/3914

## Enhancements
* Improve liquibase-core pom.xml handling (DAT-14546) by @nvoxland in https://github.com/liquibase/liquibase/pull/4169
* DAT-14367 - Restructured Liquibase modules by @sayaliM0412 in https://github.com/liquibase/liquibase/pull/4186
* Adding support for Postgresql generated columns. by @filipelautert in https://github.com/liquibase/liquibase/pull/4185
* DAT-13972: add rollback-on-error ability and its MDC to update-one-changeset command by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/934
* MDC for update-testing-rollback by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/943
* Update pro key for test by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/962
* DAT-12568 pro license key automation by @jnewton03 in https://github.com/liquibase/liquibase-pro/pull/966
* DAT- 13285 :: Update stored logic checksum logic to match new OSS checksum logic for procedures by @MalloD12 in https://github.com/liquibase/liquibase-pro/pull/931
* DAT-14674: add help test for pro side by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/965

## Security, Driver and other updates
* Bump maven-surefire-plugin from 2.22.2 to 3.0.0 by @filipelautert in https://github.com/liquibase/liquibase/pull/4113
* Bump maven-enforcer-plugin from 3.2.1 to 3.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/4081
* Bump jacoco-maven-plugin from 0.8.8 to 0.8.10 by @dependabot in https://github.com/liquibase/liquibase/pull/4174
* Bump flatten-maven-plugin from 1.3.0 to 1.4.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4036
* Bump logback-classic from 1.4.6 to 1.4.7 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/947
* Bump jackson-core from 2.14.2 to 2.15.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/949
* Bump jackson-annotations from 2.14.2 to 2.15.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/950
* Bump jackson-module-jaxb-annotations from 2.14.2 to 2.15.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/951
* Bump jackson-dataformat-yaml from 2.14.2 to 2.15.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/953
* Bump jacoco-maven-plugin from 0.8.9 to 0.8.10 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/955

## Fixes
* Fixed #3487 Provide precision and scale for currency database datatype and H2. by @jccampanero in https://github.com/liquibase/liquibase/pull/4019
* Fix search path handle for PostgreSQL with JDBC connection with specified schema by @quonas in https://github.com/liquibase/liquibase/pull/4021
* Fixes undesired change to CreateProcedureChange checksum generation by @filipelautert in https://github.com/liquibase/liquibase/pull/4161
* Fixed #3722 auto-increment column starting with a custom value no longer works with H2 v1 by @quonas in https://github.com/liquibase/liquibase/pull/4013
* Fix addDefaultValue checksum calculation when providing schema name by @filipelautert in https://github.com/liquibase/liquibase/pull/4203
* DAT-13953: fix integration name log message for native tools by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/937
* Fix tests because of output change from Postgres 9.6 to 15. by @filipelautert in https://github.com/liquibase/liquibase-pro/pull/970
* DAT-14642 - Fix Update-one-changeset problem that shows up during checksum upgrade by @filipelautert in https://github.com/liquibase/liquibase-pro/pull/968
* Move dbchangelog-4.21.xsd to liquibase-standard by @nvoxland in https://github.com/liquibase/liquibase/pull/4176
* include changelog file when running status command from Liquibase class (DAT-14659) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4201
* Always use LockService from Factory when running command steps by @filipelautert in https://github.com/liquibase/liquibase/pull/4151
* SnowflakeDatabase allows catalog name in identifiers in https://github.com/liquibase/liquibase/pull/4092
* Change the case of sys.extended_properties. by @jccampanero in https://github.com/liquibase/liquibase/pull/4101
* Load properties from defaults-file fixing variable replacement for refactored commands by @filipelautert in https://github.com/liquibase/liquibase/pull/4204
* Remove helper commands from help output (DAT-14674) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4207
* DAT-14177: add changesetsRolledback for failed rollback-on-error rollback by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/932

## New Contributors
* @sayaliM0412 made their first contribution in https://github.com/liquibase/liquibase-pro/pull/929
* @jccampanero made their first contribution in https://github.com/liquibase/liquibase/pull/4019

### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!

## File Descriptions

-  **Liquibase CLI** -- Includes open source + commercial functionality
  - **liquibase-x.y.z.tar.gz** -- Archive in tar.gz format
  - **liquibase-x.y.z.zip** -- Archive in zip format
  - **liquibase-windows-x64-installer-x.y.z.exe** -- Installer for Windows
  - **liquibase-macos-installer-x.y.z.dmg** -- Installer for MacOS
- **Primary Libraries** - For embedding in other software
  - **liquibase-core-x.y.z.jar** – Base Liquibase library (open source)
  - **liquibase-commerical-x.y.z.jar** – Additional commercial functionality
- **liquibase-additional-x.y.z.zip** – Contains additional, less commonly used files
  - Additional libraries such as liquibase-maven-plugin.jar and liquibase-cdi.jar
  - Javadocs for all the libraries
  - Source archives for all the open source libraries
  - ASC/MD5/SHA1 verification hashes for all files


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v5.0.0...v4.22.0


Changes in version Liquibase v4.21.1 (2023.04.12)

### Liquibase 4.21.1 is a patch release

## Notable Changes
### [PRO] Observability Initiative - Structured Logging
Structured Logging makes Liquibase operation data easily available for automated monitoring and analysis tools to read, query, and act upon in automated workflows. This feature significantly improves the way Liquibase logs its actions and events to make records machine-readable, easily-ingested, and queryable by industry-standard observability and analysis tools. Learn more at https://docs.liquibase.com/structured-logging

## What's Changed
* DAT-14365: unhide log-format parameter by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4120
* updated changelog txt to 4.21 by @suryaaki2 in https://github.com/liquibase/liquibase/pull/4121
* remove Hub mention from readme by @mariochampion in https://github.com/liquibase/liquibase/pull/4127
* Add missing parameter changeLogFile to update command when running from Main by @filipelautert in https://github.com/liquibase/liquibase/pull/4126

## New Contributors
* @mariochampion made their first contribution in https://github.com/liquibase/liquibase/pull/4127

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.21.0...v4.21.1


Changes in version Liquibase v4.21.0 (2023.04.12)
### Liquibase v4.21.0 is a major release

## Notable Changes
### [PRO] Observability Initiative - Structure Logging
Structured Logging makes Liquibase operation data easily available for automated monitoring and analysis tools to read, query, and act upon in automated workflows. This feature significantly improves the way Liquibase logs its actions and events to make records machine-readable, easily-ingested, and queryable by industry-standard observability and analysis tools. Learn More at https://docs.liquibase.com/structured-logging


## Command refactoring
* Refactor update-to-tag command step (DAT-6641) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3916
* Refactor update-to-tag-SQL command step (DAT-6642) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3917
* Refactor Rollback and RollbackSQL command by @filipelautert in https://github.com/liquibase/liquibase/pull/3991
* Refactor ListLocksCommand by @filipelautert in https://github.com/liquibase/liquibase/pull/3952
* Refactor ReleaseLocksCommand by @filipelautert in https://github.com/liquibase/liquibase/pull/3953
* Refactoring of rollbackCount[SQL] commands by @filipelautert in https://github.com/liquibase/liquibase/pull/4077
* Refactor update, updateSql, updateCount, updateCountSql to use Command framework (DAT-6600/DAT-6601) by @abrackx in https://github.com/liquibase/liquibase/pull/3866
* Refactor update to use command framework DAT-6600 by @abrackx in https://github.com/liquibase/liquibase-pro/pull/849


## Enhancements
* [Community] New update summary output table for update commands DAT-13182 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3812
* [PRO] New runWithSpoolFile attribute for runWith changesets DAT-12881 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3864


## Security, Driver and other updates
* Bump targetMavenVersion from 3.8.7 to 3.9.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3785
* Bump actions/cache from 3.2.6 to 3.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3936
* Bump maven-plugin-plugin from 3.7.1 to 3.8.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3871
* Bump maven-compiler-plugin from 3.10.1 to 3.11.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3870
* Bump snowflake-jdbc from 3.13.27 to 3.13.28 by @dependabot in https://github.com/liquibase/liquibase/pull/3863
* Bump sqlite-jdbc from 3.40.1.0 to 3.41.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3862
* Bump maven-assembly-plugin from 3.4.2 to 3.5.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3
* Bump snowflake-jdbc from 3.13.28 to 3.13.29 by @dependabot in https://github.com/liquibase/liquibase/pull/3981
* Bump postgresql from 42.5.4 to 42.6.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3982
* Bump maven-resources-plugin from 3.3.0 to 3.3.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4025
* Bump mariadb-java-client from 3.1.2 to 3.1.3 by @dependabot in https://github.com/liquibase/liquibase/pull/4006
* Bump slf4j-jdk14 from 2.0.6 to 2.0.7 by @dependabot in https://github.com/liquibase/liquibase/pull/3979
* Bump targetMavenVersion from 3.9.0 to 3.9.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3980
* Bump actions/cache from 3.3.0 to 3.3.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3948
* Bump maven-deploy-plugin from 3.1.0 to 3.1.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4026
* Bump maven-install-plugin from 3.1.0 to 3.1.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4027
* Bump sqlite-jdbc from 3.41.0.0 to 3.41.2.1 by @dependabot in https://github.com/liquibase/liquibase/pull/4028
* Upgrade maven-javadoc-plugin version to 3.5.0 by @MalloD12 in https://github.com/liquibase/liquibase/pull/3973
* Release liquibase-cdi-jakarta to maven repositories by @DCCSKrezovic in https://github.com/liquibase/liquibase/pull/4001
* Upgrade spring 5 version by @filipelautert in https://github.com/liquibase/liquibase/pull/4015
* Snakeyaml 2.0 by @filipelautert in https://github.com/liquibase/liquibase/pull/3893
* Upgrade AdoptOpenJDK bundled in the JVM installer to version 17.0.6+10 by @MalloD12 in https://github.com/liquibase/liquibase/pull/3900
* [PRO] Bump logback-classic from 1.4.5 to 1.4.6 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/884
* [PRO] Bump flatten-maven-plugin from 1.3.0 to 1.4.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/893
* [PRO] Bump postgresql from 42.5.4 to 42.6.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/892
* [PRO] Bump jacoco-maven-plugin from 0.8.8 to 0.8.9 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/925
* [PRO] Snakeyaml 2.0 by @filipelautert in https://github.com/liquibase/liquibase-pro/pull/858



## Fixes
* ChangelogSync family to CommandStep refactoring by @filipelautert in https://github.com/liquibase/liquibase/pull/3859
* Improved concurrency support in ReflectionSerializer by @Dasiu in https://github.com/liquibase/liquibase/pull/3840
* Make Pattern instance variables and avoid re calculating each time. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3656
* Java 8 improvements by @arturobernalg in https://github.com/liquibase/liquibase/pull/3712
* Map 'double' to SQL type 'DOUBLE PRECISION' for an Oracle database (CORE-3165) by @maartenc in https://github.com/liquibase/liquibase/pull/3707
* Rollback Snakeyaml default config to allow duplicate keys. by @filipelautert in https://github.com/liquibase/liquibase/pull/3939
* Upgrades snakeyaml for installer by @filipelautert in https://github.com/liquibase/liquibase/pull/3943
* DAT-12842 by @sayaliM0412 in https://github.com/liquibase/liquibase/pull/3909
* Improve use of generics in code by @arturobernalg in https://github.com/liquibase/liquibase/pull/3797
* DAT-12842 by @sayaliM0412 in https://github.com/liquibase/liquibase/pull/3963
* Performance Improvement: optimized DatabaseChangeLog.normalizePath() by @nvoxland in https://github.com/liquibase/liquibase/pull/3853
* Clear entries from MDC map on scope exit by @amrasarfeiniel in https://github.com/liquibase/liquibase/pull/3927
* [3910] fix missing OSGI manifest entries for service loaders by @jherkel in https://github.com/liquibase/liquibase/pull/3912
* Fixes #3734 MySQL ENUM and SET column type  by @nwcm in https://github.com/liquibase/liquibase/pull/3842
* Change Index.setTable method to take a Relation parameter DAT-13676 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3987
* only set the execType to RERAN, if the changeset was actually executed by @AlexGruebel in https://github.com/liquibase/liquibase/pull/3926
* Create the change exec listener earlier so that it is available if there is an exception DAT-13939 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3954
* [3906]  Don't break Liquibase if a resolveable hostname is not found by @filipelautert in https://github.com/liquibase/liquibase/pull/3960
* Rename ON_MISSING_INCLUDE_FILE configuration and property names by @MalloD12 in https://github.com/liquibase/liquibase/pull/3899
* Load XSD files under OSGI by @ponziani in https://github.com/liquibase/liquibase/pull/3378
* Fixes #3083 MySQL JSON length issue by @nwcm in https://github.com/liquibase/liquibase/pull/3849
* Prevention of NullpointerException (unboxing) in generate-changelog with MS SQL Server  by @barthel in https://github.com/liquibase/liquibase/pull/3903
* Issue 3619 - Allow control of recursion for includeAll via minDepth and maxDepth attributes by @jasonlyle88 in https://github.com/liquibase/liquibase/pull/3620
* Avoid String concatenation in loop. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3668
* fix NullPointerException in ResourceAccessor by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4040
* Lowers message log level. by @filipelautert in https://github.com/liquibase/liquibase/pull/4046
* Remove potentially sensitive information from --monitor-performance  by @nvoxland in https://github.com/liquibase/liquibase/pull/3640
* Add mirror-console-messages-to-log parameter (DAT-13802) by @abrackx in https://github.com/liquibase/liquibase/pull/4032
* Do not ignore DatabaseException for Snowflake by @filipelautert in https://github.com/liquibase/liquibase/pull/4034
* Fix DB-Doc generation of Unique Constraints for Sybase ASE database. by @crenan in https://github.com/liquibase/liquibase/pull/3911
* Lowers Snakeyaml log level for warning stack traces by @filipelautert in https://github.com/liquibase/liquibase/pull/4062
* Remove unused parameters and local variables by @arturobernalg in https://github.com/liquibase/liquibase/pull/3857
* Do not show update summary for updateCountSql or updateTagSql DAT-14107 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4060
* add additional information to toString/describe methods of SQLFileChange (DAT-13789) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4059
* Update ShowSummary argument reference from CommandUtil class to fix failing integration tests by @MalloD12 in https://github.com/liquibase/liquibase/pull/4073
* strip leading slashes from contexts (DAT-13994) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4071
* Appends the table type to the statement using it. by @filipelautert in https://github.com/liquibase/liquibase/pull/4000
* Update runner image for pr builds (DAT-14192) by @abrackx in https://github.com/liquibase/liquibase/pull/4094
* Do not allow custom change types to execute twice DAT-14051 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/4054
* Disables buffered log service if not using hub by @filipelautert in https://github.com/liquibase/liquibase/pull/3969
* Fixes UnsupportedOperationException thrown in SpringResourceAccessor in Spring Boot 3 Native Image by @justin-tay in https://github.com/liquibase/liquibase/pull/3959
* Do not repeat MDC logging. by @filipelautert in https://github.com/liquibase/liquibase/pull/4088
* Implement Strict global configuration support to control whether non-empty author attribute is allowed or not by @MalloD12 in https://github.com/liquibase/liquibase/pull/4044
* Read Snowflake views definitions with the Snowflake-specific query by @LonwoLonwo in https://github.com/liquibase/liquibase/pull/3794
* Fixed #3745 error generation intType when using autoIncrement=true with H2 V2 by @quonas in https://github.com/liquibase/liquibase/pull/4008
* log generated databasechangelogsql without erroneously incrementing the order executed by 2 (DAT-13680) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/4097
* Remove native executor name property (DAT-13580) by @abrackx in https://github.com/liquibase/liquibase/pull/4108


* [PRO] DAT-12881 Implement runWithSpoolFile attribute and createSpool property to control use of Oracle spooling by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/843
* [PRO] DAT-12814: '--rollback-on-error' should return ERROR and return code 1 when update fails by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/905
* [PRO] DAT-13968 Added missing overwrite property by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/895
* [PRO] DAT-13667 Make sure exception from SQLCMD is propagated back to be displayed by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/902
* [PRO] DAT-14096 Handle existence of a file extension when creating spool/sql/log files by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/913
* [PRO] DAT-13994: strip leading slashes from contexts by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/921


## New Contributors
* @maartenc made their first contribution in https://github.com/liquibase/liquibase/pull/3707
* @amrasarfeiniel made their first contribution in https://github.com/liquibase/liquibase/pull/3927
* @nwcm made their first contribution in https://github.com/liquibase/liquibase/pull/3842
* @AlexGruebel made their first contribution in https://github.com/liquibase/liquibase/pull/3926
* @ponziani made their first contribution in https://github.com/liquibase/liquibase/pull/3378
* @barthel made their first contribution in https://github.com/liquibase/liquibase/pull/3903
* @DCCSKrezovic made their first contribution in https://github.com/liquibase/liquibase/pull/4001
* @justin-tay made their first contribution in https://github.com/liquibase/liquibase/pull/3959
* @quonas made their first contribution in https://github.com/liquibase/liquibase/pull/4008


### 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/.

### Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.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](https://www.liquibase.org/development/contribute.html)
[Make doc updates](https://github.com/Datical/liquibase-docs)
[Help by asking and answering questions](https://forum.liquibase.org/)
[Set up a chat with the Product team](https://calendly.com/liquibase-outreach/product-feedback)

Thanks to everyone who helps make the Liquibase community strong!

## File Descriptions

-  **Liquibase CLI** -- Includes open source + commercial functionality
  - **liquibase-x.y.z.tar.gz** -- Archive in tar.gz format
  - **liquibase-x.y.z.zip** -- Archive in zip format
  - **liquibase-windows-x64-installer-x.y.z.exe** -- Installer for Windows
  - **liquibase-macos-installer-x.y.z.dmg** -- Installer for MacOS
- **Primary Libraries** - For embedding in other software
  - **liquibase-core-x.y.z.jar** – Base Liquibase library (open source)
  - **liquibase-commerical-x.y.z.jar** – Additional commercial functionality
- **liquibase-additional-x.y.z.zip** – Contains additional, less commonly used files
  - Additional libraries such as liquibase-maven-plugin.jar and liquibase-cdi.jar
  - Javadocs for all the libraries
  - Source archives for all the open source libraries
  - ASC/MD5/SHA1 verification hashes for all files



**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.20.0...v4.21.0

Changes in version Liquibase v4.20 (2023.03.07)

* feat : https://datical.atlassian.net/browse/DAT-12842 by @sayaliM0412 in https://github.com/liquibase/liquibase/pull/3867
* Issue 3584: Add support for relativeToChangelogFile for ChangeLogProperty class/property attribute by @jasonlyle88 in https://github.com/liquibase/liquibase/pull/3595
* Jakartaee CDI for liquibase by @xazap in https://github.com/liquibase/liquibase/pull/3642
* use variable for maven version by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3895
* update db changelog xsd to 4.20 by @suryaaki2 in https://github.com/liquibase/liquibase/pull/3918
* [PRO]DAT-6606, DAT-6607 and DAT-6613 by @filipelautert in https://github.com/liquibase/liquibase-pro/pull/824
* structured logging test updates by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/851
* [PRO] update pro xsd and flow schema to 4.20 by @suryaaki2 in https://github.com/liquibase/liquibase-pro/pull/861
* DAT-6606, DAT-6607 (DAT-6623 too) and DAT-6613 by @filipelautert in https://github.com/liquibase/liquibase/pull/3775
* remove Liquibase Hub autoregistration prompts (DAT-13419) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3886
* Bump actions/cache from 3.2.5 to 3.2.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3851
* [PRO] Bump jsqlparser from 4.5 to 4.6 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/842
* [PRO] Bump mockito-core from 3.8.0 to 3.12.4 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/845
* [PRO] Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/846
* [PRO] Bump actions/setup-java from 2 to 3 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/847
* [PRO] Bump schdck/create-env-json from 1 to 2 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/848
* [PRO] Bump maven-compiler-plugin from 3.10.1 to 3.11.0 by @dependabot in https://github.com/liquibase/liquibase-pro/pull/850
* only show structured log license message after value providers are registered (DAT-13362) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3850
* pin maven version for sonar scan by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3880
* Fix CheckSum generation issues + improvements  by @MalloD12 in https://github.com/liquibase/liquibase/pull/3616
* One more pin to maven 3.8.7 by @filipelautert in https://github.com/liquibase/liquibase/pull/3885
* Pin Maven to 3.8.7 in other places by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3884
* more maven version pinning by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3887
* structured logging MdcKey renaming by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3875
* Revert "Fix CheckSum generation issues + CURRENT_CHECKSUM_ALGORITHM_VERSION updated from 8 to 9." by @filipelautert in https://github.com/liquibase/liquibase/pull/3892
* Safely call snakeyaml methods that have been changed in last versions. by @filipelautert in https://github.com/liquibase/liquibase/pull/3904
* [PRO] only show structured log license message after value providers are registered (DAT-13362) by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/839
* [PRO] Pin maven to 3.8.7 by @wwillard7800 in https://github.com/liquibase/liquibase-pro/pull/855
* [PRO] GitHub action maven version pin by @StevenMassaro in https://github.com/liquibase/liquibase-pro/pull/859


## New Contributors
* @sayaliM0412 made their first contribution in https://github.com/liquibase/liquibase/pull/3867
* @jasonlyle88 made their first contribution in https://github.com/liquibase/liquibase/pull/3595
* @xazap made their first contribution in https://github.com/liquibase/liquibase/pull/3642


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.19.1...v4.20.0

Changes in version Liquibase v4.19.1 (2023.02.28)

* Fixes generate-changelog table/view comment and table/view column comment generation for MSSQL by @abrackx in https://github.com/liquibase/liquibase/pull/3563
* Publish liquibase-extension-testing to github packages  by @abrackx in https://github.com/liquibase/liquibase/pull/3697
* Fully qualified path to the changelog or snapshot in S3 is not allowed, so needs better msg by @diadiushko in https://github.com/liquibase/liquibase/pull/3564
* detect circular references in includeAll statement by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3695
* Bump junit-jupiter-params from 5.9.1 to 5.9.2 by @dependabot in https://github.com/liquibase/liquibase/pull/3673
* Bump ant from 1.10.11 to 1.10.13 by @dependabot in https://github.com/liquibase/liquibase/pull/3672
* Bump firebird-testcontainers-java from 1.2.0 to 1.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3653
* Add support for multiple schemas to dbDoc command by @zpanderson in https://github.com/liquibase/liquibase/pull/1834
* No need redundant conditions. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3553
* Replace expressions with type arguments with diamond type <>. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3591
* Fix typos. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3586
* Remove duplicate conditions in expressions and branches of if statements. They are used due to oversight. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3548
* Replace constant charset String literal with the predefined StandardC… by @arturobernalg in https://github.com/liquibase/liquibase/pull/3568
* normalize path of SQL changelog file when parsing by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3664
* Delegate change set equality tests by @droy-sandbox in https://github.com/liquibase/liquibase/pull/3550
* improve logging around paths that do not exist by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3669
* PR template: add comments around help text by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3715
* normalize path of json and yaml changelogs when parsing by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3711
* deprecate DefaultLoggerConfiguration by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3706
* Refactor of TagExistsCommandStep and extraction of code to new LockServiceCommandStep  by @filipelautert in https://github.com/liquibase/liquibase/pull/3667
* Refactors CalculateChecksumCommandStep  by @filipelautert in https://github.com/liquibase/liquibase/pull/3696
* CORE-3044 avoid locking if no updates pending by @RichardBradley in https://github.com/liquibase/liquibase/pull/2190
* Warning in case of missing liquibase files instead of throwing an exception by @mhewedy in https://github.com/liquibase/liquibase/pull/3081
* Document new TestSystem functionality by @nvoxland in https://github.com/liquibase/liquibase/pull/2463
* Remove redundant modifiers. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3594
* Update maven-bundle-plugin instructions to export package containing XSD files by @GeertZondervan in https://github.com/liquibase/liquibase/pull/3597
* Bump actions/delete-package-versions from 3 to 4 by @dependabot in https://github.com/liquibase/liquibase/pull/3649
* Bump maven-plugin-plugin from 3.7.0 to 3.7.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3698
* Bump assertj-core from 3.23.1 to 3.24.2 by @dependabot in https://github.com/liquibase/liquibase/pull/3705
* Bump jaybird from 4.0.8.java8 to 5.0.0.java8 by @dependabot in https://github.com/liquibase/liquibase/pull/3659
* Rework dropProcedure for Snowflake Log message when dropAll fails  by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3702
* Bump mariadb-java-client from 3.1.0 to 3.1.2 by @dependabot in https://github.com/liquibase/liquibase/pull/3729
* Remove redundant conditions tha covered by a subsequent condition. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3590
* fix: snowflake has wrong priority by @Yogurt-lei in https://github.com/liquibase/liquibase/pull/3572
* Do not add default schema name to getSchemas method to avoid one schema by @LonwoLonwo in https://github.com/liquibase/liquibase/pull/3704
* #3035 add Double data type class to avoid incorrect double(0) database by @LonwoLonwo in https://github.com/liquibase/liquibase/pull/3703
* Stop publishing liquibase-extension-testing to Github on branch builds by @abrackx in https://github.com/liquibase/liquibase/pull/3726
* do not support setting column comments on a view in Snowflake  by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3710
* Migrate setup-java action to use Temurin by @gdams in https://github.com/liquibase/liquibase/pull/3607
* Add support for db2 view comments by @abrackx in https://github.com/liquibase/liquibase/pull/3723
* Fix NullPointerException for case sensitive collations by @ivan909020 in https://github.com/liquibase/liquibase/pull/3699
* pass proper branch name and add required field by @jnewton03 in https://github.com/liquibase/liquibase/pull/3765
* Bump snowflake-jdbc from 3.13.26 to 3.13.27 by @dependabot in https://github.com/liquibase/liquibase/pull/3751
* Consistent ARG-suffix for 'defaultSchemaName'-Parameter by @SIEDA-EliasHeydrich in https://github.com/liquibase/liquibase/pull/3662
* Remove unnecessary cast expressions. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3670
* Bump picocli from 4.7.0 to 4.7.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3742
* Bump actions/cache from 3.2.3 to 3.2.4 by @dependabot in https://github.com/liquibase/liquibase/pull/3750
* Performance improvements by @filipelautert in https://github.com/liquibase/liquibase/pull/3588
* Implemented a summary of change sets which get filtered out during update by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3730
* Support tabular format for history command by @fbiville in https://github.com/liquibase/liquibase/pull/3541
* Removing explicit LiquibaseServletListener references by @Thunderforge in https://github.com/liquibase/liquibase/pull/3677
* Add Snowflake structured data types to unmodifiable Data Types by @LonwoLonwo in https://github.com/liquibase/liquibase/pull/3752
* Fix #3690 primaryKeyExists does not work on DB2z by @MichaelKern-IVV in https://github.com/liquibase/liquibase/pull/3691
* Remove Unnecessary operation/modifier: by @arturobernalg in https://github.com/liquibase/liquibase/pull/3657
* Replace old stream creation with java.nio. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3686
* Bump actions/cache from 3.2.4 to 3.2.5 by @dependabot in https://github.com/liquibase/liquibase/pull/3809
* Bump maven-deploy-plugin from 3.0.0 to 3.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3802
* Bump maven-shade-merge-manifest-transformer from 0.0.2 to 0.0.3 by @dependabot in https://github.com/liquibase/liquibase/pull/3779
* Bump postgresql from 42.5.1 to 42.5.3 by @dependabot in https://github.com/liquibase/liquibase/pull/3778
* Bump jaxb-runtime from 4.0.1 to 4.0.2 by @dependabot in https://github.com/liquibase/liquibase/pull/3786
* Bump jaxb-core from 4.0.1 to 4.0.2 by @dependabot in https://github.com/liquibase/liquibase/pull/3787
* Bump sqlite-jdbc from 3.40.0.0 to 3.40.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3772
* Bump maven-enforcer-plugin from 3.1.0 to 3.2.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3759
* Bump jaybird from 5.0.0.java8 to 5.0.1.java8 by @dependabot in https://github.com/liquibase/liquibase/pull/3760
* Bump mssql-jdbc from 11.2.1.jre8 to 12.2.0.jre8 by @dependabot in https://github.com/liquibase/liquibase/pull/3761
* Bump ojdbc8 from 21.8.0.0 to 21.9.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3808
* Update and rename bug_report.md to bug_report.yaml by @kevin-atx in https://github.com/liquibase/liquibase/pull/3728
* github-action-13527 by @jnewton03 in https://github.com/liquibase/liquibase/pull/3827
* Bump postgresql from 42.5.3 to 42.5.4 by @dependabot in https://github.com/liquibase/liquibase/pull/3831
* Do not duplicate clearCheckSums logic by @fbiville in https://github.com/liquibase/liquibase/pull/3628
* Fixing #3708 - AddColumn fix for H2 version 1.4.200 by @KarolyNevelos in https://github.com/liquibase/liquibase/pull/3709
* Added default values to private Scope constructor by @MarkTJohnson in https://github.com/liquibase/liquibase/pull/3756
* Improved concurrency support by using ConcurrentHashMaps by @jurgenkleverwal in https://github.com/liquibase/liquibase/pull/3799
* fixing lookahead for lastline comment method by @mwiede in https://github.com/liquibase/liquibase/pull/3717
* Do not calculate checksum when loading changelogs by @filipelautert in https://github.com/liquibase/liquibase/pull/3790
* set up maven using simpler GitHub action by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3835
* safely set code point limit for SnakeYaml by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3807
* improve command line help message format  by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3829
* Use StandardCharsets constant instead. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3725
* Fix failing EnvironmentValueProviderTest by @nvoxland in https://github.com/liquibase/liquibase/pull/3783
* Structured logging  by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3574
* Update SnakeYAML usage - do not call deprecated methods by @asomov in https://github.com/liquibase/liquibase/pull/3632
* Avoid global mutable state of Non-final fields in enumeration types. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3727
* Use constants instead of arrays with known lengths of zero by @arturobernalg in https://github.com/liquibase/liquibase/pull/3716
* Simplify lambda expressions when possible by @arturobernalg in https://github.com/liquibase/liquibase/pull/3736
* Skip MDC logging for MarkChangeSetRanStatement SQLs by @filipelautert in https://github.com/liquibase/liquibase/pull/3869
* Fix null pointers on table output by @filipelautert in https://github.com/liquibase/liquibase/pull/3868

## New Contributors
* @zpanderson made their first contribution in https://github.com/liquibase/liquibase/pull/1834
* @droy-sandbox made their first contribution in https://github.com/liquibase/liquibase/pull/3550
* @mhewedy made their first contribution in https://github.com/liquibase/liquibase/pull/3081
* @GeertZondervan made their first contribution in https://github.com/liquibase/liquibase/pull/3597
* @Yogurt-lei made their first contribution in https://github.com/liquibase/liquibase/pull/3572
* @gdams made their first contribution in https://github.com/liquibase/liquibase/pull/3607
* @ivan909020 made their first contribution in https://github.com/liquibase/liquibase/pull/3699
* @SIEDA-EliasHeydrich made their first contribution in https://github.com/liquibase/liquibase/pull/3662
* @Thunderforge made their first contribution in https://github.com/liquibase/liquibase/pull/3677
* @KarolyNevelos made their first contribution in https://github.com/liquibase/liquibase/pull/3709
* @MarkTJohnson made their first contribution in https://github.com/liquibase/liquibase/pull/3756
* @jurgenkleverwal made their first contribution in https://github.com/liquibase/liquibase/pull/3799
* @mwiede made their first contribution in https://github.com/liquibase/liquibase/pull/3717

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.19.0...v4.19.1



Changes in version Liquibase v4.19.0 (2023.01.12)

* Update release-published.yml by @jnewton03 in https://github.com/liquibase/liquibase/pull/3540
* when generating changelogs for MySQL, ignore table column order for PKs by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3486
* Simplify assert calls and replaced with simpler and equivalent calls. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3497
* fix overwriteOutputFile parameter for GenerateChangelog  by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3543
* Avoid ClassCastException when loading LogService from Scope by @mattbertolini in https://github.com/liquibase/liquibase/pull/3518
* Adds exclusions for mariadb newly added waffle dependency. by @filipelautert in https://github.com/liquibase/liquibase/pull/3559
* Delete unused import statement.  by @arturobernalg in https://github.com/liquibase/liquibase/pull/3522
* Correctly handle indexes with descending columns in snapshot by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3535
* Added call to modifyChangeSet during execute method to allow the changeSet to be correctly set on the executor by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3511
* Upgrade up the max number of code points for JSON/YAML parser by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3552
* Remove unnecessary local variables that add nothing to the comprehensibility of a method. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3373
* Allow loading gzipped data files by @mike-seger in https://github.com/liquibase/liquibase/pull/3379
* Use try-with-resources Statement when is possible. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3374
* Included SQL to return unique constraints for Sybase by @crenan in https://github.com/liquibase/liquibase/pull/3517
* Define and reuse constants. Use an empty array styles to convert a collection to an array. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3500
* Add varbinary and binary support for DB2 - fixes #3408  by @mihaelaDev in https://github.com/liquibase/liquibase/pull/3428
* Add support for block comment rollback commands on SQL changesets by @krishnaenugandula in https://github.com/liquibase/liquibase/pull/1399
* Fix getting default schema issue for firebird by @MalloD12 in https://github.com/liquibase/liquibase/pull/3390
* Allow primary key on addColumn for H2 by @nick318 in https://github.com/liquibase/liquibase/pull/3372
* Fix generatedSQL logic to allow setting up a function as a default value for MySQL version 8 by @MalloD12 in https://github.com/liquibase/liquibase/pull/3362
* #1290: Forbid empty changeSet id and author by @skrivenko in https://github.com/liquibase/liquibase/pull/3397
* Allow to drop and create a view for a Postgres database if replacing the view would fail by @rozenshteyn in https://github.com/liquibase/liquibase/pull/3399
* Added support for COMPUTED values inside CSV files for loadData change by @zbynekvavros in https://github.com/liquibase/liquibase/pull/944
* Additional (optional) tableType attribute on the CreateTableChange by @MartinRied in https://github.com/liquibase/liquibase/pull/3108
* Include "path" in databasechangelog's description column for all change types with "path" attributes by @MichaelKern-IVV in https://github.com/liquibase/liquibase/pull/3244
* #1466: Add ignore:true changeset attribute to Formatted SQL changeLogs by @skrivenko in https://github.com/liquibase/liquibase/pull/3377
* Rename DatabaseObjectComparator class to be DatabaseObjectCollectionComparator for clarity  by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3544
* Do not lower case the ProvidedValue description if the string is capitalized, i.e. it starts with 2 upper-case characters by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3589
* Use 'Integer.compare' instead by @arturobernalg in https://github.com/liquibase/liquibase/pull/3528
* Simplify 'Map' operations. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3527
* Prevent Executors collision due to hash used as a Map's key part by @Dasiu in https://github.com/liquibase/liquibase/pull/3533
* Breaks out of LockService.init loop after validations are completed instead of keep looping for 10 times by @filipelautert in https://github.com/liquibase/liquibase/pull/3576
* Remove unnecessary semicolon. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3571
* Missing Override annotations. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3558
* Adding extension license information by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3614
* Prevents redundant loop iterations. Early loop exit in 'if' condition. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3547
* Refactor TagCommand by @filipelautert in https://github.com/liquibase/liquibase/pull/3570
* update release workflow to attach artifact by run_id by @ap-liquibase in https://github.com/liquibase/liquibase/pull/3629
* implement SingletonObject to solve #2349 by @yairogen in https://github.com/liquibase/liquibase/pull/3624
* update install4j script to version 10.x by @jnewton03 in https://github.com/liquibase/liquibase/pull/3641
* Upgrades installer JDK version for next release. by @filipelautert in https://github.com/liquibase/liquibase/pull/3440
* Remove licenses that were moved to individual extensions by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3646
* Postgresql - Fallback to default schema name in SequenceSnapshotGenerator when this is null by @djochim in https://github.com/liquibase/liquibase/pull/3637
* include commercial sources and javadoc in reversion by @ap-liquibase in https://github.com/liquibase/liquibase/pull/3671
* update changelog version - 4.19 by @suryaaki2 in https://github.com/liquibase/liquibase/pull/3676
* Update changelog xsd 4.19 by @suryaaki2 in https://github.com/liquibase/liquibase/pull/3678

* Upgrade mariadb-java-client from 3.0.8 to 3.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3471
* Upgrade testcontainers-bom from 1.17.5 to 1.17.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3477
* Upgrade snowflake-jdbc from 3.13.22 to 3.13.25 by @dependabot in https://github.com/liquibase/liquibase/pull/3475
* Upgrade slf4j-jdk14 from 2.0.3 to 2.0.4 by @dependabot in https://github.com/liquibase/liquibase/pull/3485
* Upgrade maven-install-plugin from 3.0.1 to 3.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3484
* Upgrade castlabs/get-package-version-id-action from 2.0 to 2.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3490
* Upgrade sqlite-jdbc from 3.39.4.0 to 3.40.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3510
* Upgrade jaybird from 4.0.6.java8 to 4.0.8.java8 by @dependabot in https://github.com/liquibase/liquibase/pull/3509
* Upgrade mockito-inline from 4.8.1 to 4.10.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3580
* Upgrade targetMavenVersion from 3.8.5 to 3.8.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3593
* Upgrade junit-jupiter-params from 5.8.1 to 5.9.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3592
* Upgrade jaybird from 4.0.6.java8 to 4.0.8.java8 by @dependabot in https://github.com/liquibase/liquibase/pull/3602
* Upgrade slf4j-jdk14 from 2.0.4 to 2.0.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3566
* Upgrade snowflake-jdbc from 3.13.25 to 3.13.26 by @dependabot in https://github.com/liquibase/liquibase/pull/3579
* Upgrade robinraju/release-downloader from 1.6 to 1.7 by @dependabot in https://github.com/liquibase/liquibase/pull/3603
* Upgrade ojdbc8 from 21.7.0.0 to 21.8.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3551
* Upgrade targetMavenVersion from 3.8.5 to 3.8.7 by @dependabot in https://github.com/liquibase/liquibase/pull/3634
* Upgrade actions/cache from 3.0.11 to 3.2.3 by @dependabot in https://github.com/liquibase/liquibase/pull/3654

## New Contributors
* @mike-seger made their first contribution in https://github.com/liquibase/liquibase/pull/3379
* @crenan made their first contribution in https://github.com/liquibase/liquibase/pull/3517
* @mihaelaDev made their first contribution in https://github.com/liquibase/liquibase/pull/3428
* @krishnaenugandula made their first contribution in https://github.com/liquibase/liquibase/pull/1399
* @skrivenko made their first contribution in https://github.com/liquibase/liquibase/pull/3397
* @zbynekvavros made their first contribution in https://github.com/liquibase/liquibase/pull/944
* @Dasiu made their first contribution in https://github.com/liquibase/liquibase/pull/3533
* @yairogen made their first contribution in https://github.com/liquibase/liquibase/pull/3624
* @djochim made their first contribution in https://github.com/liquibase/liquibase/pull/3637

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.18.0...v4.19.0


Changes in version Liquibase v4.18.0 (2022.11.30)

## Notable Changes
* [PRO] Hashicorp Vault extension and Liquibase Pro
- Use together for increased security and convenience of centralized properties

* [PRO]Security
- Vaults offer much greater security than defaults files for environment variables

* [PRO] Centralization
- Secure your database credentials, Pro license key, secure urls, and more in one central location.
- Update your critical properties in one place, and all linked tools and jobs use the new values.

* [PRO] `rollback-on-error` command argument
- When set to `true` will attempt to rollback a failed update operation.
- Note: changesets marked `failonerror=false`, do not count as error, and so do not rollback-on-error


#### [Community] Liquibase Environment variables
* Now free to all users, not just Pro users.
* Learn more at https://docs.liquibase.com/concepts/connections/liquibase-environment-variables.html


## Enhancements
* [PRO] Auto-rollback enabled for more Pro stored logic objects
* [PRO] Added new modifyChangeSets tag to support specification of `runWith` attribute for all change sets in `include` or `includeAll`


## API Breaking Changes
* Use PathHandler for writing log files, which allows using S3 and other extensions (DAT-11515) by @abrackx in #3438

## Security, Driver and other updates
* Upgrade mockito-inline from 4.8.0 to 4.8.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3382
* Upgrade actions/cache from 3.0.8 to 3.0.11 by @dependabot in https://github.com/liquibase/liquibase/pull/3370
* Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3423
* Upgrade postgresql driver from 42.5.0 to 42.5.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3501
* Bump maven-plugin-plugin from 3.6.4 to 3.7.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3450
* Bump sqlite-jdbc from 3.39.3.0 to 3.39.4.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3451
* Bump maven-shade-plugin from 3.4.0 to 3.4.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3422
* Bump gmavenplus-plugin from 1.13.1 to 2.1.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3391
* Bump picocli from 4.6.3 to 4.7.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3432
* Bump jcc from 11.5.7.0 to 11.5.8.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3414
* Upgrade testcontainers-bom from 1.17.3 to 1.17.5 by @dependabot in https://github.com/liquibase/liquibase/pull/3341

## Fixes
* Fixes generate-changelog view comments for Postgres (DAT-9410) by @abrackx in https://github.com/liquibase/liquibase/pull/3403
* Adds DefaultChangeExecListener, catches and handles migration errors (DAT-9372) by @abrackx in https://github.com/liquibase/liquibase/pull/3431
* Fixes nullpointer when dealing with LiquibaseException on updates. by @filipelautert in https://github.com/liquibase/liquibase/pull/3447

* Resets changelog cache upon acquiring lock by @filipelautert in https://github.com/liquibase/liquibase/pull/3396
* Allows createSequence field "dataType" to be use with DB2 as the database supports it. by @filipelautert in https://github.com/liquibase/liquibase/pull/3328
* Defines "-- rollback empty" as the way to specify "no rollback needed".  by @filipelautert in https://github.com/liquibase/liquibase/pull/3324
* Fix create index on Postgresql and MSSQL using wrong column names when  generating a changelog by @filipelautert in https://github.com/liquibase/liquibase/pull/3366
* Fixed input string handling in CompareControl constructor by @filipelautert in https://github.com/liquibase/liquibase/pull/3309
* Add 'ifExists' parameter to the dropView statement by @gzsombor in https://github.com/liquibase/liquibase/pull/3301
* Fix getResourceAccessor logic to avoid setting changeLogDirectory when searchPath has already set by @MalloD12 in https://github.com/liquibase/liquibase/pull/3347
* Ensures that Postgresql works with blob types bytea and oid (large objects) by @filipelautert in https://github.com/liquibase/liquibase/pull/3381
* Improve int/tinyint/smallint/bigint handling in H2 by @MalloD12 in https://github.com/liquibase/liquibase/pull/3274
* The onSqlOutput attribute does not work for preconditions in formatted SQL changelogs. by @dyadyushko in https://github.com/liquibase/liquibase/pull/3436
* [DAT-11899] Modifies deploy plugin and distribution management. by @jnewton03 in https://github.com/liquibase/liquibase/pull/3457
* Adds ChangeExecListener properties to maven plugin (DAT-12219) by @abrackx in https://github.com/liquibase/liquibase/pull/3443
* make BufferedLogService thread safe by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3470

* Improved Sybase ASE Support by @carlos940513 in https://github.com/liquibase/liquibase/pull/665
* Do not write output files for computed columns when executing dbDoc.  Fixes #1088 by @rozenshteyn in https://github.com/liquibase/liquibase/pull/3398
* Sequence owned by a table field must be included in database snapshot by @filipelautert in https://github.com/liquibase/liquibase/pull/3335
* Fixes snapshot of case-sensitive views by @filipelautert in https://github.com/liquibase/liquibase/pull/3329
* Fix include/includeAll to correct track relativeToChangelog=true paths using ./ or ../ by @nvoxland in https://github.com/liquibase/liquibase/pull/3355
* Improved readability in the createCDILiquibaseConfig method. by @musttafayildirim in https://github.com/liquibase/liquibase/pull/3316
* testing main and sha builds by @jnewton03 in https://github.com/liquibase/liquibase/pull/3481
* Fix Postgresql autoIncrement Information in snapshot by @filipelautert in https://github.com/liquibase/liquibase/pull/3361
* Treat "," as "or" when parsing context expressions.  Fixes #1103 by @rozenshteyn in https://github.com/liquibase/liquibase/pull/3426
* CORE-1127: Filter by context when doing a rollback. by @berryh in https://github.com/liquibase/liquibase/pull/898
* Implement tagExists Maven command (Fix issue 1063) by @rozenshteyn in https://github.com/liquibase/liquibase/pull/3385
* Fixes transaction handling within changesets on DB2 on z/OS by @MichaelKern-IVV in https://github.com/liquibase/liquibase/pull/3342
* Improve dropAllForeignKeyConstraints performance by @Spindl in https://github.com/liquibase/liquibase/pull/2155
* Adds error handling for updateCount (DAT-11950) by @abrackx in https://github.com/liquibase/liquibase/pull/3463

* Adds error handling to update-to-tag (DAT-11951) by @abrackx in https://github.com/liquibase/liquibase/pull/3468
* Adds error handling for update-testing-rollback command and updateTestingRollback goal (DAT-11952) by @abrackx in https://github.com/liquibase/liquibase/pull/3474
* Fixes behaviour of includeAll by keeping the trailing slash on the path by @filipelautert in https://github.com/liquibase/liquibase/pull/3506
* Restore FileSystemResourceAccessor and add tests. by @filipelautert in https://github.com/liquibase/liquibase/pull/3499
* Simplify if statements to a single assignment. Avoid extra works. by @arturobernalg in https://github.com/liquibase/liquibase/pull/3375
* Fixed resolveSibling method by updating URL resource type by @MalloD12 in https://github.com/liquibase/liquibase/pull/3413
* Fix dependency query for PostgreSQL 15 by @Domm98CZ in https://github.com/liquibase/liquibase/pull/3456
* Release liquibase-nochangeloglock extension with the others by @nvoxland in https://github.com/liquibase/liquibase/pull/3452

## New Contributors
* @gzsombor made their first contribution in https://github.com/liquibase/liquibase/pull/3301
* @carlos940513 made their first contribution in https://github.com/liquibase/liquibase/pull/665
* @rozenshteyn made their first contribution in https://github.com/liquibase/liquibase/pull/3398
* @musttafayildirim made their first contribution in https://github.com/liquibase/liquibase/pull/3316
* @berryh made their first contribution in https://github.com/liquibase/liquibase/pull/898
* @Spindl made their first contribution in https://github.com/liquibase/liquibase/pull/2155
* @arturobernalg made their first contribution in https://github.com/liquibase/liquibase/pull/3375
* @Domm98CZ made their first contribution in https://github.com/liquibase/liquibase/pull/3456

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.17.2...v4.18.0


Changes in version 4.17.2 (2022.11.02)

This is a patch release that upgrades the HSQL driver to remove a security vulnerability.
**NOTE: The newest HSQL driver requires Java 11, so if you use HSQL and JAVA 8, you will need to upgrade your Java.**

## Fixes
No Fixes

## Updates

### Security Updates

### JDBC Driver and Third-Party Library Updates
* Upgrade hsqldb from 2.5.2 to 2.7.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3400
* [opencsv-upgrade] Updates opencsv to 5.7.1 by @abrackx in https://github.com/liquibase/liquibase/pull/3419

### OWASP Dependency Check: Reported Vulnerabilities

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.17.1...v4.17.2


Changes in version 4.17.1 (2022.10.21)

## Fixes
* fix: Use default localhost finder for MacOs - fix #2098 by @grzi in https://github.com/liquibase/liquibase/pull/2134
* Allow renameColumn on newer SQLite versions by @MalloD12 in https://github.com/liquibase/liquibase/pull/3264
* Implement logic to validate dbms set at changeset and stored procedure levels by @MalloD12 in https://github.com/liquibase/liquibase/pull/3291
* Fixed URIResource.resolveSibling by @nvoxland in https://github.com/liquibase/liquibase/pull/3354
* Use liquibase StringUtil not lang3.StringUtils by @nvoxland in https://github.com/liquibase/liquibase/pull/3338
* Handle absolute path in getAll method by @wwillard7800 in https://github.com/liquibase/liquibase/pull/3369

## Dependency Updates
* Bump ojdbc8 from 21.6.0.0.1 to 21.7.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3223
* Bump maven-shade-plugin from 3.3.0 to 3.4.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3276
* Bump slf4j-jdk14 from 2.0.2 to 2.0.3 by @dependabot in https://github.com/liquibase/liquibase/pull/3321
* Upgrade snakeyaml maven reference from 1.32 to 1.33 by @nvoxland in https://github.com/liquibase/liquibase/pull/3359
* Upgrade commons text transitive dependency by @abrackx in https://github.com/liquibase/liquibase/pull/3384


Changes in version 4.17.0 (2022.10.05)

## Notable Changes
* [PRO] The `liquibase flow` command and flow files are available with a Pro license. It allows you to create portable, platform-independent  workflows that can run across different tools without modifying each workflow.
  -  Learn more about flow here: [liquibase flow file and command](https://docs.liquibase.com/commands/flow/flow.html)
  -  If you want to provide feedback on this capability, please email mario@liquibase.com.

* [PRO] Pro license users can now integrate Amazon S3 with Liquibase. You can extend Liquibase to use remote file locations to enable secure, centralized file management.
  -  Learn more here: [S3 Remote Files](https://docs.liquibase.com/tools-integrations/remote-files/s3.html)
* [PRO] Pro license users can use searchpath to find files located on S3 that cannot be found by an absolute path.
  -  Learn more about the [Searchpath command here](https://docs.liquibase.com/concepts/changelogs/how-liquibase-finds-files.html).
  -  Learn more about [Searchpath with S3 here](https://docs.liquibase.com/tools-integrations/remote-files/searchpath.html).

## API Breaking Changes
* The liquibase.resource.ResourceAccessor APIs were updated to take advantage of the new liquibase.resource.Resource abstraction that was introduced. Code that USES the existing ResourceAccessor methods will continue to work as before with no changes, but if you have written custom implementations of ResourceAccessor there are new and changed methods to implement. For more information, see [javadocs.liquibase.com](https://javadocs.liquibase.com)

## Enhancements
* Created new liquibase.resource.Resource interface by @nvoxland in https://github.com/liquibase/liquibase/pull/3064
* Created ThreadLocalScopeManager by @nvoxland in https://github.com/liquibase/liquibase/pull/3240
* Create liquibase_autocomplete.zsh by @szandany in https://github.com/liquibase/liquibase/pull/3130

## Fixes

* AlterSequence: include NOORDER clause ordered="false" is specified by @LeBezout in https://github.com/liquibase/liquibase/pull/1044
* Upper case result columns only for case-insensitive databases by @fbiville in https://github.com/liquibase/liquibase/pull/3102
* Postgresql: Fix for case when current search_path is an empty string by @gadget in https://github.com/liquibase/liquibase/pull/3233
* Fix missing catalog on add column rollback by @jandurovec in https://github.com/liquibase/liquibase/pull/921
* Fix an error which can occur if getAutoCommit is called on a closed connection by @gpsfl in https://github.com/liquibase/liquibase/pull/3135
* apply sqlVisitors to CompoundStatements on DB2z by @MichaelKern-IVV in https://github.com/liquibase/liquibase/pull/3220
* Improved message when precondition onFail : MARK_RAN is set by @MultiM25 in https://github.com/liquibase/liquibase/pull/2238
* Add default catalog condition to SequenceSnapshotGenerator for Oracle by @gabrielnardes in https://github.com/liquibase/liquibase/pull/3152
* Fixed issue with h2 loadUpdateData not correctly handling values with the string " values " in the inserted data  by @tomyy in https://github.com/liquibase/liquibase/pull/1831
* Fix the smallserial issue not being parsed as a SmallInt type for Postgres by @MalloD12 in https://github.com/liquibase/liquibase/pull/3234
* Remove snowflake unsupported logging from snapshot command by @abrackx in https://github.com/liquibase/liquibase/pull/3277
* Fix "double" handling with H2  by @MalloD12 in https://github.com/liquibase/liquibase/pull/3273
* Firebird: fix createIndex missing space around "computed" by @Markus-Patt in https://github.com/liquibase/liquibase/pull/1500
* Test Race Condititons During Liquibase Locking by @schrieveslaach in https://github.com/liquibase/liquibase/pull/2327
* Use configuration to get 'altTablespace', 'altSchema' and 'altCatalog… by @mehrabisajad in https://github.com/liquibase/liquibase/pull/3124
* Add missing generator for parameterized SQL statements by @fbiville in https://github.com/liquibase/liquibase/pull/3225
* Add catalog null check to fix initializing a MSSQL db issue by @MalloD12 in https://github.com/liquibase/liquibase/pull/3235
* PD-2838: pointing DB list to docs by @adrian-velonis1 in https://github.com/liquibase/liquibase/pull/3280
* Addition of liquibase.update() Enhancement Request #1614 by @Betlista in https://github.com/liquibase/liquibase/pull/1638
* Fixed createView handling of replaceIfExists=true when the string "replace" exists in the view definition by @filipelautert in https://github.com/liquibase/liquibase/pull/3305
* replace backslashes in NotFoundResource URI by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3322
* Fix generateChangeLog and diffChangeLog logic to avoid including default schema name when it should not by @MalloD12 in https://github.com/liquibase/liquibase/pull/3246

## Updates

### Security Updates
* None

### JDBC Driver and Third-Party Library Updates
* Upgraded snowflake-jdbc from 3.13.21 to 3.13.22 by @dependabot in https://github.com/liquibase/liquibase/pull/3196
* Upgraded opencsv from 5.6 to 5.7.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3243
* Upgraded installer to use JDK 17.0.4.1 by @nvoxland in https://github.com/liquibase/liquibase/pull/3266
* Upgraded sqlite-jdbc from 3.39.2.1 to 3.39.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3267
* Upgraded jaxb-core from 4.0.0 to 4.0.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3292
* Upgraded mariadb-java-client from 3.0.7 to 3.0.8 by @dependabot in https://github.com/liquibase/liquibase/pull/3293
* Upgraded jaxb-runtime from 4.0.0 to 4.0.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3294
* Upgraded snakeyaml from 1.32 to 1.33 by @dependabot in https://github.com/liquibase/liquibase/pull/3310


Changes in version 4.16.1 (2022.09.14)

## New and Notable Capability
* Liquibase 4.16.0 incorrectly included the [msal4j.jar](https://mvnrepository.com/artifact/com.microsoft.azure/msal4j) and it's dependencies in `internal/lib`. This release does not include that SqlServer related library
* Upgraded snakeyaml to 1.32
## Enhancements
* None

## Fixes
* None

Changes in version 4.16.0 (2022.09.08)

## New and Notable Capability
* [LABS] The liquibase flow command and flow files are still available under the Liquibase Labs license. If you want to try and provide feedback on this capability, please email mario@liquibase.com
* [PRO] The Quality Checks for Databases are now available to all Pro license users. These checks inspect your active database, or a liquibase-generated snapshot for compliance with your rules. Learn more at https://docs.liquibase.com/quality-checks

## Enhancements
* Introduced "contextFilter" and "labelFilter" replacement settings by @nvoxland in #2971
* Added support for changeset references in rollback for Formatted SQL changelogs by @atzawada in #1386
* Add schemas and includeSchema parameters to maven generateChangeLog by @MalloD12 in #3210
* [PRO] Two new Pro commands update-one-changeset and update-one-changeset-sql serving as complements to rollback-one-changeset and roll-back-one-changeset-sql

## Fixes
* Fix addColumn on mysql when including a "value" attribute by @nvoxland in #3070
* Add support for AS <dataType> clause for H2 since version 2.0 by @marcus-nl in #3047
* Fixed NUMBER not compatible with H2 by @nick318 in #3098
* SpringResourceAccessor: fix issue with incorrect match pattern for files from classPath root by @danilmalkin in #3095
* Made liquibase.snapshot.ResultSetCache an extensible class. by @breglerj in #2087
* Added support for \u2116 symbol win1251 cyrillic symbol of number by @Stuchalin in #1324
* Tidy ExecutorService code, remove superfluous map access (Issue 1841) by @jamey-clari in #1842
* Fixed order of enum values on MySQL 8 by @Tantalon in #3150
* Removed invalid warning in Maven by @nvoxland in #3189
* [PRO] QC: checks show changes (--show-cols flag, drop some, etc.) by @dyadyushko in #3187

Changes in version 4.15.0 (2022.08.04)

## Notable Changes
* liquibase flow and new flow-file (DAT-10419) by in #2946
 This is currently a Liquibase Labs restricted capability, so please contact mario@liquibase.com to request a license key.
  Learn more at http://docs.liquibase.com/flow

## Fixes
* Fix maven plugin pro commands for local developer install by @StevenMassaro in #3101
* Update Derby reserved words by @andrewhj in #1971
* Output "may lose settings" warning on mysql/mariadb for more impacted change types by @nvoxland in #3045
* Improved "include" fix performance: optimized normalizePath method by @lzxgyh in #3063
* Removed DatabaseInfoAttributes in XSD by @kazz62 in #2239
* Do not split SQL on delimiters within BEGIN/END blocks by @nvoxland in #1589
* Set max fractional timestamp digits to 12 for all DB2 editions (fix #2880) by @ctgnz in #2892
* Fix query for snapshotting views on DB2/Z by @michaelmatthiaskern in #2712
* Fix for bug 2711: Error when calling a procedure with parameters on DB2Z by @michaelmatthiaskern in #2765
* Improve CLI error messages by @nvoxland in #3078
* Liquibase flow command (DAT-10419) by @StevenMassaro in #2946
* Improved handling of endDelimiter="/" by @nvoxland in #3118
* Upgrade installer to ship with jdk 17.0.4+8 by @nvoxland in #3104
* Improve failure message of RowCountPrecondition to preserve expected row count by @martinspielmann in #3093
* Changed what sequence attributes are included in diff/generate changelog for Snowflake by @yodzhubeiskyi in #3121
* Fix columnNames snapshot attribute of uniqueConstraints for Snowflake by @yodzhubeiskyi in #3123
* Added duplicateFileMode setting for maven plugin by @nvoxland in #3119


Changes in version 4.14.0 (2022.07.26)

## Notable Changes
* Split liquibase-core and liquibase-commercial jar files by @nvoxland in https://github.com/liquibase/liquibase/pull/3050
* Added liquibase.changelogParseMode setting by @nvoxland in https://github.com/liquibase/liquibase/pull/3057

## Enhancements
* Warn if XSD version does not match build version in validate command (DAT-9874) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3016
* Allow use of pro-only objects for filtering with generateChangeLog (DAT-9542) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3068
* Improve connection exception by including underlying driver exception trace by @hessjcg in https://github.com/liquibase/liquibase/pull/3033
* Add Closeable/AutoCloseable interface to liquibase.database.Database by @zorglube in https://github.com/liquibase/liquibase/pull/2990

## Fixes

* Fixed Formatted SQL "property" parsing by @nvoxland in https://github.com/liquibase/liquibase/pull/3037
* Ensure Postgresql search_path entries are quoted correctly by @nvoxland in https://github.com/liquibase/liquibase/pull/3009
* Updated "Change Set" wording to "Changeset" by @kataggart in https://github.com/liquibase/liquibase/pull/3042
* Improved error when JAVA_HOME is set to invalid value (DAT-10545) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/3074
* Fixed autoIncrement incrementBy/startWith support in MySQL, H2, HSQLDB, and MariaDB by @tozogabee in https://github.com/liquibase/liquibase/pull/3026
* Improve renameColumn generated SQL on mssql by @mide25 in https://github.com/liquibase/liquibase/pull/783

### JDBC Driver and Third-Party Library Updates

* Upgraded mariadb-java-client from 3.0.5 to 3.0.6 by @dependabot in https://github.com/liquibase/liquibase/pull/3021
* Upgraded testcontainers-bom from 1.17.2 to 1.17.3 by @dependabot in https://github.com/liquibase/liquibase/pull/3020
* Upgraded postgresql from 42.3.4 to 42.4.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2935
* Bump jaxb-runtime from 2.3.6 to 4.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2964

Changes in version 4.13.0 (2022.07.07)

## Enhancements
* Added new liquibase.duplicateFileMode setting by @nvoxland in https://github.com/liquibase/liquibase/pull/3006
* Add additional info in CLI's --version output by @nvoxland in https://github.com/liquibase/liquibase/pull/2942
* Added support for new "searchPath" global configuration by @nvoxland in https://github.com/liquibase/liquibase/pull/2917

## Fixes
* Hide CommandFailedException stacktrace when thrown to set exit code (DAT-9608) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2938
* Update copyright year in txt files; also update links in txt files (DAT-10261) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2955
* add support for default-catalog-name in SQL Server (DAT-10484) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2940
* Make additional query for more column information for MariaDB DAT-8693 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2898
* Include should fail if a parser cannot be found for the specified file by @nvoxland in https://github.com/liquibase/liquibase/pull/2972
* Improved postgresql prepared statement performance by @nvoxland in https://github.com/liquibase/liquibase/pull/2914
* Cleanup relative paths preventing sql files being found by the class loader by @marcsowen in https://github.com/liquibase/liquibase/pull/2932
* Fix missing attributes in serialization by @tms-91 in https://github.com/liquibase/liquibase/pull/2585
* Improved parsing of single-quoted strings by @nvoxland in https://github.com/liquibase/liquibase/pull/2949
* DAT-10260: add outputFile argument in maven plugin for checks.run target by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2975
* Formatted SQL files with uppercase in the liquibase attributes (DAT-10531) by @abrackx in https://github.com/liquibase/liquibase/pull/2985
* handle empty or null input to stripComments method (DAT-10296) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2970
* Fixed issue with parameter expression parsing by @nvoxland in https://github.com/liquibase/liquibase/pull/2984
* Fixed before/after/at column arguments in addColumn by @nvoxland in https://github.com/liquibase/liquibase/pull/2943
* Adds liquibase.psql.conf example (DAT-10303) by @abrackx in https://github.com/liquibase/liquibase/pull/2939
* [DAT-10093] added schema escaping to getColumns call to jdbc metadata classes by @KushnirykOleh in https://github.com/liquibase/liquibase/pull/2895
* Use "numeric" (without parameters) data type in PostgreSQL by @LonwoLonwo in https://github.com/liquibase/liquibase/pull/1906
* Force "json" resultset formats in Snowflake when running Java 17+ by @nvoxland in https://github.com/liquibase/liquibase/pull/3019

## JDBC Driver and Third-Party Library Updates
* Upgraded jaxb-core from 2.3.0.1 to 4.0.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2962
* Upgraded snowflake-jdbc from 3.13.19 to 3.13.20 by @dependabot in https://github.com/liquibase/liquibase/pull/3001
* Upgraded mariadb-java-client from 3.0.4 to 3.0.5 by @dependabot in https://github.com/liquibase/liquibase/pull/2881
* Upgraded ojdbc8 from 21.5.0.0 to 21.6.0.0.1 by @dependabot in https://github.com/liquibase/liquibase/pull/2987
* Upgraded h2 from 2.1.212 to 2.1.214 by @dependabot in https://github.com/liquibase/liquibase/pull/2944

Changes in version 4.12.0 (2022.06.16)

## Enhancements
* Changed value modifier to make StandardLockService extendable for future extension by @Cliftonz in https://github.com/liquibase/liquibase/pull/2785
* Added liquibase.showBanner global configuration setting by @nvoxland in https://github.com/liquibase/liquibase/pull/2871
* Quality Checks for Databases (DAT-9298) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2715
* Added configuration options for missing property handling by @dwieland in https://github.com/liquibase/liquibase/pull/2656
* Add ConfiguredValueModifier extension point for plugins by @mcred in https://github.com/liquibase/liquibase/pull/2252
* Added showBanner configuration to maven by @nvoxland in https://github.com/liquibase/liquibase/pull/2933
* Added new argument to preserve schema case DAT-10027 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2888
* Introduced "latest" xsd file path by @nvoxland in https://github.com/liquibase/liquibase/pull/2886
* Moved Snowflake support into standard liquibase [DAT-10294]  by @KushnirykOleh in https://github.com/liquibase/liquibase/pull/2841

## JDBC Driver and Third-Party Library Updates
* Added connector-api.jar to internal/lib by @nvoxland in https://github.com/liquibase/liquibase/pull/2873
* Upgraded mysql-connector-java from 8.0.28 to 8.0.29 by @dependabot in https://github.com/liquibase/liquibase/pull/2798
* Move opencsv to be non-shaded by @nvoxland in https://github.com/liquibase/liquibase/pull/2903
* Added snowflake driver to CLI by @nvoxland in https://github.com/liquibase/liquibase/pull/2931
* Upgraded mssql-jdbc from 10.2.0.jre8 to 10.2.1.jre8 by @dependabot in https://github.com/liquibase/liquibase/pull/2846

## Fixes
* Fixed BLOBs in loadData for MySQL/MariaDB  by @MichaelCkr in https://github.com/liquibase/liquibase/pull/2595
* Fixed getting ENUM column values from Mysql database having multiple schemas by @akatiyar in https://github.com/liquibase/liquibase/pull/2616
* Added logic to Derby.getDefaultDriver() to check for availability of different driver classes by @AlexanderSashchenko in https://github.com/liquibase/liquibase/pull/2571
* Fixed TableOutput spaces when using long words (DAT-10069) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2879
* Fixed addAutoIncrement startValue and incrementBy support on postgresql by @nvoxland in https://github.com/liquibase/liquibase/pull/2588
* Support non-classpath: protocols in Spring by @reallyinsane in https://github.com/liquibase/liquibase/pull/2524
* Fixed #2780: AddColumnChange with schema and NOT NULL constraint fails by @MartinRied in https://github.com/liquibase/liquibase/pull/2781
* Make extension matching for SQL parsers case-insensitve DAT-10265 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2884
* Restored outputDefaultSchema and outputDefaultCatalog command arguments by @nvoxland in https://github.com/liquibase/liquibase/pull/2834
* Quote liquibase.jar path in bash launcher by @nvoxland in https://github.com/liquibase/liquibase/pull/2885
* Fix for working with Firebird 2 and newer versions. Fixes nullables and boolean type. by @mngsgoncalves in https://github.com/liquibase/liquibase/pull/2277
* Fixed issue if change changelog object is null by @kamalnigam in https://github.com/liquibase/liquibase/pull/2837
* Filter out license key strings for Hub communication DAT-10522 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2926
* Specify which parameter is missing in the error message by @bendem in https://github.com/liquibase/liquibase/pull/2567
* Split license information into OSS vs. Pro directories by @nvoxland in https://github.com/liquibase/liquibase/pull/2868
* Use the method setBlob to insert blob data by @xjodoin in https://github.com/liquibase/liquibase/pull/605
* Smooth out differences in "./" paths by @nvoxland in https://github.com/liquibase/liquibase/pull/2915
* Include inherited labels in databasechangelog table by @nvoxland in https://github.com/liquibase/liquibase/pull/2870
* Restored OSGi headers by @nvoxland in https://github.com/liquibase/liquibase/pull/2924
* Working on better Git Bash console solution DAT-10230 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2882
* close InputStream in SQLFileChange (DAT-9855) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2920
* Support prepared statements for query by @fbiville in https://github.com/liquibase/liquibase/pull/2913
* Implement NOT VALID for Postgres databases by @coenvk in https://github.com/liquibase/liquibase/pull/2600

Changes in version 4.11.0 (2022.05.19)

## Enhancements
* Added new liquibase.monitorPerformance setting for CLI by @nvoxland in https://github.com/liquibase/liquibase/pull/2599
* Updated Installer JDK to 17 by @nvoxland in https://github.com/liquibase/liquibase/pull/2602
* Create internal/lib dir by @nvoxland in https://github.com/liquibase/liquibase/pull/2850

## JDBC Driver and Third-Party Library Updates
* Upgraded picocli from 4.6.1 to 4.6.3 by @dependabot in https://github.com/liquibase/liquibase/pull/2518
* Upgraded jaxb libraries to the newest 2.3.x versions by @nvoxland in https://github.com/liquibase/liquibase/pull/2793
* Upgraded snakeyaml from 1.27 to 1.30 by @dependabot in https://github.com/liquibase/liquibase/pull/2498

## Fixes
* Do not throw a confusing error if a datatype specified as a changelog parameter is not expanded by @nvoxland in https://github.com/liquibase/liquibase/pull/2772
* Fixed SQLite not correctly snapshotting tables with underscores in the name by @nvoxland in https://github.com/liquibase/liquibase/pull/2778
* Fixed local XSD lookup by @nvoxland in https://github.com/liquibase/liquibase/pull/2830
* Test System Framework: add support for "liquibase.sdk.testSystem.skip" property by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2838
* stop database containers when spock execution ends by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2843
* Refactor start-h2 logic by @nvoxland in https://github.com/liquibase/liquibase/pull/2597
* Support default values in the format `(0)::real` by @nvoxland in https://github.com/liquibase/liquibase/pull/2836
* Fix handling of defaultSchemaName on Postgresql by @nvoxland in https://github.com/liquibase/liquibase/pull/2812
* Introduce generateStatementsFromRows for extensions by @fbiville in https://github.com/liquibase/liquibase/pull/2686
* The type of attributes "ordered" and "cycle" should be boolean by @DartVerder in https://github.com/liquibase/liquibase/pull/2725
* improve Command Test filtering logic by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2853
* Remove custom log message filtering by @nvoxland in https://github.com/liquibase/liquibase/pull/2777
* Spring Boot: better support relativeToChangelogfile when ResourceLoaders return FilteredReactiveWebContextResources by @erik-meuwese-topicus in https://github.com/liquibase/liquibase/pull/2758
* Fix ForeignKeyComparator when foreign key table is not known by @joserebelo in https://github.com/liquibase/liquibase/pull/2565

**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.10.0...v4.11.0


Changes in version 4.10.0 (2022.05.04)

## 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
* 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
* Quality checks for Maven - `checks run` and `checks show` goals


## Fixes
* Fix EnterpriseDB database recognition by @nvoxland in https://github.com/liquibase/liquibase/pull/2767
* Fix start failure with Nullpointed exception 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


**Full Changelog**: https://github.com/liquibase/liquibase/compare/v4.9.1...v4.10.0


Changes in version 4.9.1 (2022.03.25)

## Liquibase 4.9.1 patch release
Please report any issues to [https://github.com/liquibase/liquibase/issues](https://github.com/liquibase/liquibase/issues).

## Notable Changes

[[PR#2666](https://github.com/liquibase/liquibase/pull/2666)] [[nvoxland](https://github.com/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](https://github.com/liquibase/liquibase/issues/2648).

[[Issue#2672](https://github.com/liquibase/liquibase/issues/2672)] Addresses the remaining OSGi-related packaging problems to fully restore Liquibase support in OSGi environments.

## Fixes
[[PR#2651](https://github.com/liquibase/liquibase/pull/2651)] Fixed the issue with a malicious software alert for the Liquibase macOS Installer preventing from proceeding with the installation. [DAT-9524]

[[PR#2643](https://github.com/liquibase/liquibase/pull/2643)] Fixed an issue in snapshot on PostgreSQL where non-integer datatypes that used a default value with a sequence would not be handled correctly [DAT-8670]

[[PR#2691](https://github.com/liquibase/liquibase/pull/2691)] Fixed invalid JSON in the example-changelog.json file [DAT-9893]

Changes in version 4.9.0 (2022.03.17)

# Notable Changes

Liquibase  4.9.0 introduces the following functionality:
- [PRO] Quality checks output in a JSON format
- [PR#2558] [kavya-shastri] The extension of the usage of the Liquibase global configuration for the `secureParsing` parameter to prevent the entity resolver from falling back to looking on the network for missing XSDs. If you reference an XSD other than one of Liquibase, Liquibase will no longer automatically download the XSD from the internet and use it. The default value for `secureParsing`  is `true`, but you can override it in any of the Liquibase configuration locations. For more information, see the Example Changelogs: XML Format documentation.
- [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.
## Enhancements
- [PR#2434] [Balázs Dési] Added the Maven `validate` goal to `maven-liquibase-plugin` to provide access to the existing Liquibase `validate` command and be available not only in CLI, but also in Maven
- Added the ability to use `sqlcmd` on an instance with multiple databases
For more information, see the Using the SQLCMD integration and runWith attribute with Liquibase Pro and MSSQL Server documentation.
- Added support for Liquibase, Spring Boot, and SQL Plus run with Kerberos
- [PR#2561] [Wesley Willard] Added the `--schemas` argument to the `snapshot` command to be able to compare a multi-schema database to its snapshot
- [PR#2606] [Wesley Willard] Added a best practice message for the `generate-changelog` command so that you can check if the `splitStatements` attribute works for your environment when generating formatted SQL changelogs [DAT-9327]
- Added the `StripComments` attribute for the `SQLUserDefinedPatternCheck` quality check to choose the code that the `SQLUserDefinedPatternCheck` searches, including the option for the commented code. The `StripComments` attribute strips comments from SQL before searching for the string. The default value is `N` (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 of `referenceDatabase` 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
- [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 is `false` in the `loadUpdateData` 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`, and `BIGSERIAL` for versions earlier than 21.2
   - `GENERATED 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 for `endDelimiter` 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`
- [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


Changes in version 4.8.0 (2022.02.23)

Notable Changes

Liquibase 4.8.0 introduces a built-in SQLCMD integration that allows you to specify the runwith paramter sqlcmd custom executor to process
complex SQL for MSSQL Server. Liquibase provides the liquibase.sqlcmd.conf file to pass arguments to your executor when running Liquibase Pro.

For new and existing Liquibase Hub users, Liquibase 4.8.0 introduces the init hub command, used in Hub’s Getting Started on-boarding.
Users can get defaults and changelog files setup, working, and registered to Hub with just this one command.

Enhancements
- Implemented the SimpleObjectConstructor interface for DB2 on z/OS [DAT-8580]
- Implemented the init hub command to complete Liquibase Hub onboarding
- Included the CLI instructions on how to use the properties file with a nonstandard name when running the init project subcommand [DAT-9041]
- Added to init start-h2 a clearer message 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 no class attribute [LB-1144]
- [PR#2222] [msimko81] Added the offline mode support for the rollback-sql <tag> operation [LB-2198]

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 and diff commands to show and generate a proper SQL with autoincrement for PostgreSQL [DAT-8779]
- [PR#1320] [Anatoly S] Fixed the issue with the generated SQL incorrectly displaying the numero sign (No) [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#1894] [KushnirykOleh] Made the time data type precise for PostgreSQL [LB-1798]•[PR#2190] [Richard Bradley] [Hannu Hartikainen] [VlasyukA] [Nathan Voxland] Fixed the issue with locking database if no changelogs are needed to run and no updates are pending. The services can proceed in parallel. [LB-2203]
- New Test System management by @nvoxland in https://github.com/liquibase/liquibase/pull/2312
- Remove duplicate databasechangeloglock SQL when running update-sql against a new database by @nvoxland in https://github.com/liquibase/liquibase/pull/2335
- UniqueConstraintSnapshotGenerator - Add table name to OracleDB query by @wziebicki in https://github.com/liquibase/liquibase/pull/2139
- CORE-3326 Numero sign is a symbol in Russian by @tolix in https://github.com/liquibase/liquibase/pull/1320
- Allow a custom executor to be specified through a property on existing Executor implementations DAT-7531 by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2374
- Make ClassLoaderResourceAccessor implement Closable by @Delir4um in https://github.com/liquibase/liquibase/pull/2308
- Liquibase Responsible Disclosure Policy by @kristyldatical in https://github.com/liquibase/liquibase/pull/2435
- use lowercase sp_rename function in MSSQL (LB-1763) by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2366
- Added example rollback scripts by @molivasdat in https://github.com/liquibase/liquibase/pull/2367
- Bump junit from 4.12 to 4.13.1 in /liquibase-extension-testing by @dependabot in https://github.com/liquibase/liquibase/pull/1827
- Bump maven-surefire-plugin from 2.22.1 to 2.22.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2427
- Bump testcontainers-bom from 1.16.2 to 1.16.3 by @dependabot in https://github.com/liquibase/liquibase/pull/2467
- Bump mockito-core from 3.3.3 to 3.12.4 by @dependabot in https://github.com/liquibase/liquibase/pull/2470
- Bump maven-jar-plugin from 3.1.1 to 3.2.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2458
- Bump mockito-inline from 3.8.0 to 3.12.4 by @dependabot in https://github.com/liquibase/liquibase/pull/2465
- Bump surefire-junit4 from 2.22.1 to 2.22.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2466
- Bump objenesis from 2.1 to 2.6 by @dependabot in https://github.com/liquibase/liquibase/pull/2468
- Bump slf4j-jdk14 from 1.7.33 to 1.7.35 by @dependabot in https://github.com/liquibase/liquibase/pull/2475
- Bump assertj-core from 3.13.2 to 3.22.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2474
- Bump maven-resources-plugin from 3.0.2 to 3.2.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2473
- Bump maven-verifier from 1.6 to 1.7.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2472
- Added new Quality Checks command and subcommands (Mac specifict) by @szandany in https://github.com/liquibase/liquibase/pull/2273
- Don't repackage all org.apache.- classes. by @nvoxland in https://github.com/liquibase/liquibase/pull/2429
- Log exceptions in CDILiquibase before rethrowing them by @nvoxland in https://github.com/liquibase/liquibase/pull/2397
- Bump maven-assembly-plugin from 3.1.1 to 3.3.0 by @dependabot in https://github.com/liquibase/liquibase/pull/2499
- Bump flatten-maven-plugin from 1.1.0 to 1.2.7 by @dependabot in https://github.com/liquibase/liquibase/pull/2495
- Bump gmavenplus-plugin from 1.6.2 to 1.13.1 by @dependabot in https://github.com/liquibase/liquibase/pull/2491
- Bump sonar-maven-plugin from 3.7.0.1746 to 3.9.1.2184 by @dependabot in https://github.com/liquibase/liquibase/pull/2490
- Bump robinraju/release-downloader from 1.2 to 1.3 by @dependabot in https://github.com/liquibase/liquibase/pull/2405
- Bump maven-plugin-plugin from 3.6.0 to 3.6.4 by @dependabot in https://github.com/liquibase/liquibase/pull/2497
- Bump maven-bundle-plugin from 5.1.2 to 5.1.4 by @dependabot in https://github.com/liquibase/liquibase/pull/2494
- [Snyk] Security upgrade com.h2database:h2 from 2.0.206 to 2.1.210 by @snyk-bot in https://github.com/liquibase/liquibase/pull/2392
- Enable FEATURE_SECURE_PROCESSING XML setting by default by @nvoxland in https://github.com/liquibase/liquibase/pull/2384
- Correctly set Bundle-Version in META-INF on release by @nvoxland in https://github.com/liquibase/liquibase/pull/2505
- Bump ant from 1.9.15 to 1.10.9 in /liquibase-core by @dependabot in https://github.com/liquibase/liquibase/pull/1808
- Bump postgresql from 42.2.12 to 42.3.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2459
- Use path instead of absolutePath for resources by @liefke in https://github.com/liquibase/liquibase/pull/2122
- Bump junit from 4.12 to 4.13.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2411
- Bump slf4j-jdk14 from 1.7.35 to 1.7.36 by @dependabot in https://github.com/liquibase/liquibase/pull/2506
- Added additional unicode letter points by @nvoxland in https://github.com/liquibase/liquibase/pull/2329
- Escape schema/tablenames in metadata.getTables() by @nvoxland in https://github.com/liquibase/liquibase/pull/2398
- Add offline mode support for rollbackSQL <tag> by @msimko81 in https://github.com/liquibase/liquibase/pull/2222
- Avoid NullPointerException when customChange has no "class" attribute by @danielthegray in https://github.com/liquibase/liquibase/pull/1648
- Support adding computed=true columns with no type set by @nvoxland in https://github.com/liquibase/liquibase/pull/2340
- Bump maven-javadoc-plugin from 3.3.1 to 3.3.2 by @dependabot in https://github.com/liquibase/liquibase/pull/2525
- DAT-9218  Added limited permission user for SQLPLUS integration tests by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2480
- instruct surefire to read files with UTF-8 encoding by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2541
- Bump mysql-connector-java from 6.0.6 to 8.0.28 by @dependabot in https://github.com/liquibase/liquibase/pull/2419
- Reworked license not found message by @suryaaki2 in https://github.com/liquibase/liquibase/pull/2371
- Fix for Github issue dealing with duplicate property keys by @wwillard7800 in https://github.com/liquibase/liquibase/pull/2351
- Use "GENERATED BY DEFAULT AS IDENTITY" for h2 2.0+ by @nvoxland in https://github.com/liquibase/liquibase/pull/2372
- MSSQL: Throw validation error if "ordered" is specified in createSequence/alterSequence by @nvoxland in https://github.com/liquibase/liquibase/pull/2549
- init hub command by @StevenMassaro in https://github.com/liquibase/liquibase/pull/2326 [DAT-8615]

Changes in version 4.7.1 (2022.01.21)

- Fix bug which makes Liquibase misidentify your database dialect if the string 'edb' is in your connection url. (#2364)
- Output changeset execution to UI like rollback does (#1932)
- Support MaxDB for sequences (#932)
- Include columnDataType in generated setColumnRemarks changesets (#2188)
- Use database time for changeloglock table (#2217)
- Mysql: support additional information "double" datatypes (#2293)
- Correctly handle old "liquibase tagExists myTag" style CLI structure (#2269)
- Correctly handle cacheSize in mariadb (#2270)
- Mark liquibase-maven-plugin logging configuration as deprecated (#2261)
- Added validation errors for SQLite and DB2z databases (#2359)

Changes in version 4.7.0 (2022.01.07)

Liquibase 4.7.0 introduces the init command with the project subcommand, which helps to build the necessary
configuration files for using Liquibase or, if you already use Liquibase, create new project files with minimal input.[DAT-8640]

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.

Enhancements
- [PRO] Improved the output of the rollback-one-update command
- [PR#2244] [szandany] Enabled the use of the jdbc:edb URL for Liquibase to recognize EnterpriseDB
- [PR#2225] [nvoxland] [catholic-indulgence-vaper] Enabled the use of lowercase sys.synonyms objects for the generate-changelog and diff-changelog commands in Liquibase and SQL Server. The PR fixes PR#2044.
- Added DB2 on z/OS database type and Java classes for Liquibase
- Upgrade h2 to newer version 2.0.206

Fixes
- Fixed the generateChangeLog wrong dependency order: the addPrimaryKey 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
- Fixed quality checks reporting only the first failure for a changeset to report all failures in outputs
- 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] [nhumblot] [philhinco] Fixed the addNotNullConstraint Change Type causing the "Data too long" error message. The PR fixes PR#1054.
- [PR#2073] [smainz] Fixed the relativeToChangelogFile attribute for loadData, createProcedure, and createView Change Types
- [PR#2228] Handle the fact that FK names are not always unique
- [PR#2081] fix OSGI support (manifest, class loading)
- [PR#928] addColumn should support not-null constraint

Changes in version 4.6.2(2021.11.30)

Liquibase 4.6.2 introduces the multiple objects name quality check that allows you to define and check the naming pattern for several objects rather than one object.
For example, you do not want to have a dash in the table, column, and sequence names. With the multiple objects name 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
You can use two patterns for multiple object check:
- Multiple objects’ name in search:
    - Table name matches a pattern
    - Column name matches a pattern
    - Sequence name matches a pattern
- Multiple objects’ name is not in search:
    - Table name does not match a specific pattern
    - Column name does not match a specific pattern
    - Sequence name does not match a specific pattern

Enhancements
- [PRO] Added the ability to configure the DDL_LOCK_TIMEOUT parameter for Oracle without SQL Plus and define the connection timeout.
- Improved the output of the SqlUserDefinedPatternCheck quality check copy
- Changed the default value of the strict parameter to false. You can set the strict parameter as follows:
- liquibase.strict=false|true in your liquibase.properties file
- Improved the handling of nested changelog preconditions. The PR fixes PR#1624.
- Enabled the update operations to continue if the DATABASECHANGELOGLOCK table already exists, which helps to serialize all processes following schema creation.
- Added support for MySQL function indexes. The PR fixes PR#1626.
- Added support for the NOT NULL constraint with an initial default value in the addColumn Change Type
- Added a flag to control the logging of SQL statements and SQL execution output
- Added support for the remarks attribute in a primary key column tag for MariaDB
- Implemented the handling of the GENERATED ALWAYS AS clause while creating a table for PostgreSQL
- Added the ability for Liquibase 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

Fixes
- [PRO] Fixed the snapshot command failing against CockroachDB with the Liquibase Pro license key applied
- Fixed the naming of the checks settings file shown as null if the file was corrupted
- Fixed the issue with Liquibase escaping the backslash in values stored in objects. The PR fixes PR#1598.
- Fixed the generate-changelog command to generate the NUMERIC[] data type for PostgreSQL correctly
- Fixed the parsing logic for YAMLChangelogParser and changeLogId in a Map. The PR fixes PR#1988.
- Fixed the --verbose flag used in the unexpected-changesets command. The PR fixes PR#1987.
- Fixed the exit code for the validate command running in automation to be 1 when there is an error. The PR fixes PR#1006.
- Fixed the dependency order for a changelog file with the addPrimaryKey Change Type generated by the generate-changelog command for PostgreSQL
- [PRO] Fixed the following environment variables LIQUIBASE_COMMAND_CHECKS_CONFIGURE_CHECKS_SETTINGS_FILE, LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SETTINGS_FILE, and LIQUIBASE_COMMAND_CHECKS_SHOW_CHECKS_SETTINGS_FILE to be detected when running the quality checks commands [DAT-8546]
- Fixed quality checks reporting only the first failure in a changeset to report all failures found
- Fixed the time data type to be precise for PostgreSQL. The PR fixes PR#1774.
- Fixed the SQL generated by the alterSequence Change Type to be compatible with the Oracle, PostgreSQL, MariaDB, and MSSQL databases
- Fixed the Liquibase Cassandra extension failing when username and password are enabled
- Fixed the LOCKGRANTED column to include time zone information in the DATABASECHANGELOGLOCK table
- Fixed the classpath to include files with the relativeToChangelog=true parameter for Spring Boot

Changes in version 4.6.1(2021.11.04)

- Fixed the liquibase-pro-4.6.xsd

Changes in version 4.6.0(2021.11.04)

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

**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.
 - Quality checks have configurable severity and exit codes
 - The quality checks bulk-set command
 - New Quality checks
	- Static check: Warn when a table truncation is detected
	- Dynamic check: Warn when granting specific privileges
	- Static check: Warn when the `GRANT WITH ADMIN OPTION` statement is detected
	- Static check: Warn when the `GRANT WITH GRANT OPTION` statement is detected
 - 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.
 - Changed the XSD default `errorOnMissingOrEmpty` attribute to `true` for the `includeAll` attribute in the XML _changelog_ file (#1960)
 - Added support for deferrable primary keys in the `createTable` Change Type. (#1597)
 - Added support for the `constraintName` attribute in the `dropNotNullConstraint` attribute. Updated the `addNotNullConstraint` rollback logic to pass the constraint name to the generated `dropNotNullConstraint` change (#1492)
 - Improved code and added tests in the `liquibase.util` package
 - Changed the default encoding to UTF-8. Added a new global `liquibase.fileEncoding` setting, which you can set as `--file-encoding=ASCII` in the CLI, `liquibase.fileEncoding: ASCII` in the liquibase.properties file, and `LIQUIBASE_FILE_ENCODING=ASCII` as an environment variable (#1445)

 - [PRO] Added a message to warn Liquibase Pro users when they have noncompliant Liquibase environment variables if the `strict` attribute is set to `true`
 - [PRO] Fixed the issue with Liquibase 4.4.0 and later versions to prompt if the Liquibase Pro license key is expired or invalid.
 - [PRO] Fixed Liquibase Pro SQL Plus _changesets_ failures with the Kerberos setup
 - [PRO] Fixed the `snapshot` command using for CockroachDB with Liquibase Pro license key
 - Fixed an issue with running quality checks on Windows when using a configuration file created on Linux/macOS
 - Fixed the `ChangesetCommentCheck` check to handle a lack of comments in the `tagDatabase` Change Type
 - Fixed the default severity for the existing `liquibase.checks-settings.conf` files
 - Fixed the `checks customize` and `checks copy` commands to handle directories with spaces
 - Fixed the `schemas` and `includeSchema` attributes for the `generateChangeLog` command in Liquibase 4.4 and later versions
 - Fixed the quality checks customization issue when using Git Bash
 - Fixed the message for the quality checks severity customization
 - 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
 - Fixed the quality checks customization issue when using Git Bash
 - Fixed the issue with Liquibase inserting a wrong default datetime value into MySQL. The PR fixes (#1395)
 - Fixed the `insert` Change Type with the `valueSequenceNext` and `valueSequenceCurrent` attributes to use the schema specified on a statement level of a _changeset_ (#1304)
 - Fixed the issue with Liquibase not handling case-sensitive primary key names in the `dropPrimaryKey` attribute for PostgreSQL (#1933)
 - Fixed the `sqlFile` Change Type to handle the `encoding` attribute(#1760)
 - Fixed the issue with Liquibase throwing a null pointer exception in the CLI if the `LicenseService` interface cannot be loaded because of the missing `jaxb` dependencies
 - Fixed the `UniqueConstraintSnapshotGenerator` class switching to a bulk query after four unique constraints (#1996)
 - Fixed the issue with Liquibase formatted SQL _changesets_ that are skipped if there is a space in the `--changeset` line (#1919)
 - Fixed the `dropAll` command failing in the PostgreSQL database when the Liquibase-Cassandra extension is in the `liquibase/lib` directory (#47)
 - Fixed Liquibase not reading the `liquibaseSchemaName` and `liquibaseCatalogName` configuration settings (#2000)
 - Fixed the issue with Liquibase incorrectly inserting a long CLOB value in the database. Added integration tests.

Changes in version 4.5.0(2021.09.21)

There is a new family of commands to use to run quality checks:
- liquibase checks show to list the available quality checks
- liquibase checks 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 Liquibase Quality Checks:
- Implement checks enable/disable subcommands
- Implement checks run subcommand for dynamic rules
- Implement checks customize subcommand
- Implement checks copy subcommand
- Implement checks reset subcommand
- Implement checks show subcommand for dynamic rules
- Implement checks delete subcommand
- STATIC CHECK :: Changeset Must Have A Label
- STATIC CHECK :: Changeset Must Have A Context
- STATIC CHECK :: Changeset Must Have A Comment
- STATIC CHECK :: Warn When "DROP TABLE" Detected
- STATIC CHECK :: Warn When "DROP COLUMN" Detected
- STATIC CHECK :: Warn When Data Type Modification is Detected
- STATIC CHECK :: Warn when 'GRANT' Statement Detected
- STATIC CHECK :: Warn when 'REVOKE' Statement Detected
- DYNAMIC CHECK :: Warn when Tables have more than n columns
- Fail when creating a Scope with a null-parent #1354
- Improve synchronization of LockServiceFactory reset #1991
- Fix createSequence for h2 when dataType is specified #1992
- GenerateChangeLog on an Oracle db ignores diffIncludeTablespace when creating MissingTableChange #1812
- Fix OSGiResourceAccessor failing due to javax.activation #1534
- Ensure that the root scope is initialized correctly regardless of whether a scope manager has been configured yet or not #1768
- Manage parent directory relative to changelog in IncludeAll #1968
- Fix UniqueConstraint snapshot query on db2z #1771
- Fixes Postgresql bit column support #1468
- fixed usage of computed values in prepared insert/update changes #1590
- Get Set deleteCascade for serializer mapping #1837
- Add support for changeset ids and authors with spaces in formattedsql changelogs. #1845
- More efficient XML resource loading #1860
- Too many open files error on application server: LiquibaseEntityResolver opens too many file descriptors and never closes them #1815 
- Classpath scan time lapse for every included changelog file #1913 
- Postgresql: Preserve existing search_path when setting the defaultSchemaName #1864
- Cannot call extension function from migration #1823 
- Fixed postgresql addPrimaryKey cluster handling #1880
- PostgresDatabase should ignore addPrimaryKey clustered false #1779 
- CLI no longer reading defaultsFile from classpath #1893
- [PRO] Pro Enhancement Request: set 'splitStatements' to 'false' for Stored Logic changesets when generating a Formatted SQL changelog
- [PRO] Allow users to indicate names and location of their spool files when using runWith:sqlplus
- [PRO] Cannot update MariaDB expand based storage after first liquibase update
- [PRO] Liquibase PRO generateChangeLog error on Postgresql functions that have long signatures containing any '()' characters

Changes in version 4.4.3 (2021.08.05)

- Do not worry about FileSystemAlreadyExistsException errors #1885
- The sqlFile and relativeToChangelogFile attributes fail when using the logicalFilePath attribute #1277
- The wrong path received if relativeToChangelogFile=true and databaseChangeLog has logicalFilePath != PhisicalFilePath #1353
- Added a separate query for DB2 on AS400, which fixed the dropAll command on DB2 for iSeries #1412
- Fixed the logicalFilePath attribute not being serialized #1471
- Fixed the SqlParser bug related to parsing UTF-8 valid symbols #1513
- Fixed the invalid update SQL generated for HSQL database in InsertOrUpdateGeneratorHsql.java #1563
- Added a validation error when the customChange Change Type has no name attribute #1592
- Fixed the issue with Liquibase failing to create a DATABASECHANGELOGLOCK record and apply changesets into Firebird 3. isNumericBoolean now checks the Firebird3Database instance type and returns Boolean for Firebird 3. #1875
- Fixed the issue with escaping question marks in PostgreSQL: #1877
- SQL changesets are transforming the PostgreSQL ? JSON operator into ??, causing function definitions using this operator to become invalid #1764
- An error when processing a large Postgres SQL changeset #1507
- Fixed the issue with ClassCastException in a standard lock service: java.time.LocalDateTime cannot be cast to java.util.Date #1878
- 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 #1515
- Added the ability to handle empty lines at the beginning of a formatted SQL #1713
- Fixed loading the CLOB data into PostgreSQL. Instead of loading the CLOB file name, PostgreSQL loads the content of the CLOB file. #1791
- Changed the MD5SUM column value from RawSqlStatement to UpdateStatement #1602
- Fixed synchronization in ChangeLogHistoryServiceFactory.java #1361
- Enabled the dropAll report to work with a registered changelog with no extra arguments and send the information to Liquibase Hub
- Renamed the tablespaceName parameter to liquibaseTablespaceName
- Changed from RawSqlStatement to UpdateStatement #1602
- Fix synchronization in ChangeLogHistoryServiceFactory.java #1361
- [PRO] Fixed the changeset execution failure related to the DATICAL_SPERRORLOG table when using the runWith=sqlplus attribute and executing operations as a user with only SELECT, UPDATE, and INSERT permissions [DAT-7410]

Changes in version 4.4.2 (2021.07.22)

- Changed NullPointerException to ChangeLogParseException for the output when there is a typo in a changeSet node (#1593)
- Added the support method to DatabaseConnection (#1784)
- Fixed the issue with handling serial and bigserial if liquibase.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 - arguments in the CLI (#1943)
- Restored the updateTestingRollback command (#1939)
- Added the Maven goal for unexpectedChangeSets (#1972)
- Extended the dropAll command with optional hubConnectionId and hubProjectId attributes. For more information, check our [dropAll command]documentation.
- Fixed nested properties and the substitution of variables in YML changelogs.
- Implemented the ability to use connectionjdbcurl when there is no project or connection ID with the dropAll command.
- Improved the Liquibase Pro License key messaging.
- Added the ability to handle a declined auto-registration when running the dropAll command.
- Fixed auto-registration issues.
- [PRO] Added the ability to handle special characters in procedures when using the generateChangeLog command.
- [PRO] Fixed the issue with formatted SQL changesets and runwith:sqlplus being stopped unless Liquibase includes a quit statement.
- [PRO] Fixed the SQL Plus spool log issue.

Changes in version 4.4.1 (2021.07.09)
 - GH PR#1869 ⁃ HubUpdater releases lock even though registration is skipped
 - GH PR#1861 ⁃ Only snapshot tables/columns in loadData
 - GH PR#1843 ⁃ [LB-704] fixed generating sequences for Postgres versions prior to 10
 - GH Issue#1829 ⁃ Fixes MySQL Snapshot/Generated ChangeLog output for table key constraints when multiple tables
 - Postgres: Rollback of rename target fails due to malformed SQL.
 - Liquibase Hub registerChangeLog messaging fixes
 - Liquibase Hub, Maven, and liquibase.properties file fixes
 - Using --liquibaseProLicenseKey is on the left side of the command
 - Update Liquibase installer adoptopenjdk from 11.0.10 to 11.0.11
 - [PRO] SQL Plus handles backslashes in changeset  attributes' values
 - [PRO] SQL Plus passing arguments during runtime fixes
 - [PRO] SQL Plus handles Oracle proxy user setups
 - [PRO] SQL Plus improve temp file handling
 - [PRO] Fixes snapshot on MySQL Stored Logic Objects with Integer Types

Changes in version 4.4.0 (2021.06.08)
- Refactor Configuration API
-- [PRO] including native use of Environment variables
- Refactor Command API
- Rewrote CLI to use new library
-- including new command options and help content
- Fixes an issue with Maven logs and username password (#1859)
- Fixes an issue with resolving properties files (#1723)
- Fixes an issue with diffChangelog dependency order (#1722)
- Fixes an issue with generating changlogs with DB2 on z/OS (#1506)
- Fixes an issue with long table names in Postgres (#1483)
- Fixes an issue with update flags for Postegres(#1213)
- Fixes an issue with loadData and loadUpdateData(#964)

Changes in version 4.3.5 (2021.04.29)
- Better error handling in runWith=sqlplus when user doesn't have create/drop table permissions

Changes in version 4.3.4 (2021.04.15)
- Reverts changes from #1722 because they broke other diffChangeLog/generateChangeLog use cases.

Changes in version 4.3.3 (2021.04.09)
- Fixes an issue with changelogsync and hub
- Fixes an issue with diff and NullPointerException (#1631)
- Fixes an issue with NullPointerException and DateTimeType (#1366)
- Fixes an issue with maven resolving/using properties file (#1723)
- Fixes an issue with diffChangeLog and addColumn -> addPrimaryKey ordering (#1722)

Changes in version 4.3.2 (2021.03.25)

- Added new changelogSyncToTag command #1133
- Support for working with deactivated changelogs in hub
- Added ability to create hub projects with parameters instead of only via prompts
- Only enable console prompting when explicitly enabled by the CLI #1711 #1689
- Handle includeAll better in spring boot #1595 and #1436
- Changed JRE bundled with installers to use the latest LTS version
- Better handle dropAll on postgresql partitioned tables #1650
- Fixed sample liquibase.sqlplus.conf file #1448 and #1416
- Fixed loadData's usePreparedStatement attribute #1098
- Send hub logs at the same log level as configured in the CLI

Changes in version 4.3.1 (2021.02.12)

- Fixed handling of `classpath*:` in includeAll #1595
- ClassCastException on moving to mysql-connector-java 8.0.23 #1639
- Passwords sent to Hub when using jTDS driver
- ChangeExecListener cannot be used to to HubChangeExecListener #1651
- RelativePathError when using includeAll tag and Spring Boot #1657
- Liquibase 4.3.0 throws NullPointerExceptions without snakeyaml in the classpath #1682

Changes in version 4.3.0 (2021.02.06)

- MariaDB is now fully certified for Liquibase Pro users
- Added ability to register for Hub during update operations
- Receive Liquibase Hub report links in the CLI after running commands
- Fixed NPE when an output writer is null #1625
- Fixed filename + Id + author to be treated as unique in ValidatingVisitor.findChangeSet method #1622
- Fixed EntityResolver to check the classpath even if the standard ResourceAccessor does not include it #1621
- Fixed the CVE-2017-18640 issue on snakeyaml-1.2.4 #1608
- Fixed HistoryCommandTest to run on systems having a non-US default locale #1078
- Added quotes around ${JAVA_PATH} in Liquibase shell script to avoid spaces in path issues #1062
- Fixed the issue with automatic dropping of default values on MS SQL #1003
- Allow --changeset to have a space after -- in formatted sql files
- Modified SetColumnRemarks support for MySQL #942
- Implemented boolean data type support for DB2 LUW #966
- Added deprecated LogFactory.getInstance() to smooth the upgrade to 4.x #1642 and #1641
- Included the existing dropPrimaryKey.dropIndex attribute in XSD #1629
- Implemented auto-registration and operation report capabilities for Liquibase Hub

Changes in version 4.2.2 (2020.12.09)

- Handle null statement objects coming from JdbcConnection objects #1576

Changes in version 4.2.1 (2020.12.03)

- Fixed invalid casting to JdbcConnection in CockroachDatabase #1536
- Fixed missing unique constraints in snapshot #1477
- Fixed unexpectedChangeSets command throwing a null pointer exception
- If error occurs during generating SQL, Liquibase stops and does not send POST to Hub
- Use ConcurrentHashMap in ExecutorService #1402
- DropDefaultValue on postgresql now drops the default value vs. setting the default value to null #931
- Updated banner to reference to hub.liquibase.com
- [PRO] GenerateChangeLog on postgresql stored logic now hashes parameters in filenames instead of listing them all out
- [PRO] Fix in postgresql check constraints snapshot
- [HUB] Command registerChangeLog now supports YAML and JSON changelog files

Changes in version 4.2.0 (2020.11.12)

- [PRO] Support for snapshotting Mysql stored logic
- GH PR#373 - Added option "updateable" to the column tag.
- GH Issue#1523 - Fix xsd, remove surplus space after validateForeignKey (4.1.xsd / 4.2.xsd
- GH Issue#1510 - MySql 8.0 requires create and drop of temporary tables to run generateChangeLog
- GH PR#1496 - Move banner.txt to new location
- GH PR#1495 - Fix issue with loadUpdateData GH-1489
- GH Issue#1489 - loadUpdateData broken for clob/text fields in 3.10.3
- GH Issue#1476 - Consider alternative location for banner.txt
- GH Issue#1438 - XML Export adds ',xxx' instead of ','
- GH Issue#1389 - Precondition onFail="WARN" doesn't work properly
- GH PR#1427 - Update Ant Tasks to use DatabaseFactory rather than create connection itself

Changes in version 4.1.1 (2020.10.09)

- GH #1276 Rewrote SpringResourceAccessor
- GH PR#1285 Remove deprecated code in Ant tasks
- GH PR#1286 Fix usage of AntTaskLogger
- GH #1097 diffChangeLog overwrites first changeset in formatted sql changelog

Changes in version 3.10.3 (2020.10.09)

- GH PR#912  - CORE-3379 escaping postgres questionmark operators to prevent unwanted parameter syntax
- GH PR#936  - SpringLiquibase createResourceOpener() now returns a ResourceAccessor, which allows it to be overridden with any kind of ResourceAccessor
- GH PR#983  - Fixes for loadData to support Postgres enums with java.sql.Types.OTHER
- GH PR#1010 - Potential fix for generated columns on postgres
- GH PR#1258 - Reduced the verbosity of logging by moving SQL logging from info to debug logging
- GH PR#1239 - Fix xsd, remove surplus space after validateForeignKey
- GH PR#1296 - Put the banner in an external file for easier editing.
- GH PR#1327 - Fix varchar(max) extrainfo in 3.10 branch
- GH PR#1406 - Fixed integration tests for 983
- GH PR#781  - feat: Maven Liquibase Plugin generateChangeLog mysql sql comment supported
- GH PR#945  - [CORE-3523] Consistently map Liquibase integer types to Oracle integer types.  MERGED THEN UNMERGED
- GH PR#1140 - fix root paths for spring boot fat jar
- GH PR#1332 - Update FileSystemResourceAccessor.java
- GH PR#1372 - Fix for PR 1001 in 3.10.x branch
- Fixed priority for JDBC Connections
- GH PR#1140 - Added json and sql to the list
- GH PR#1418 - Revert "[CORE-3523] Consistently map Liquibase integer types to Oracle integer types"  UNMERGE 945
- GH PR#1422 - Updates for #1081 in 3.10.x
- GH PR#1431 - Fix merge issue in OracleDatabase
- GH PR#1443 - Handle MSSQL computed columns in generate changelog LB-366
- GH PR#1447 - Do not use batched statements for Postgres LoadDataChange LB-744
- Fixed schema version number for 3.10

Changes in version 4.1.0 (2020.9.28)

- Added support for hub.liquibase.com to CLI and Maven integrations
- New registerChangeLog command
- New syncHub command
- Added hubApiKey argument
- Added hubConnectionId argument
- CLI commands and arguments are now case insensitive
- Includes changes from 3.10.2

Changes in version 3.10.2 (2020.7.27)

 - Dependency cycle error during generateChangeLog with --diffTypes=tables,columns,data
 - liquibase maven:: unable to run tests on java > 8
 - Add Banner in log out put that directs users to online resources.
 - GH PR#980 - fixed invalid carriage return coming from oracle ojdbc8 12.2.0.1
 - GH PR#976 - Changes databasechangelog sql to use legacy mode
 - [CORE-3525] Add support for java.sql.Types.TIMESTAMP_WITH_TIMEZONE.
 - GH PR#929 - Fix #CORE-3493 Inconsistent resolution of ChangeLogParameters
 - GH PR#744 - Informix data type generation with Default Value cause
 - GH PR#1176 - Add MariaDB sequence support to the 3.10.x branch
 - GH PR#1177 - CORE-3643: fixed the 'shouldValidateX' methods in the Constraints
 - GH PR#1201 - H2 unknown reserved word


Changes in version 4.0.0 (2020.07.14)
- No changes since 4.0.0 beta2

Changes in version 4.0.0 Beta2 (2020.07.1)
- Re-introduced deprecated versions of commonly used 3.x methods that had been removed for 4.0
- Fix to handle --logLevel=debug/fine CLI argument
- Do not include root filesystem in default CLI search paths
Changes in version 3.10.1 (2020.7.2)

 - GH PR#913 - [CORE-3471] Fixed NPE in LiquibaseUtil when MANIFEST.MF doesn't contain Bundle-Version or Build-Time
 - GH PR#917 - [Core 3463] Fix for validateX attributes of constraintsConfig
 - GH PR#919 - Fixed issued with bundling in shaded jars
 - GH PR#941 - [CORE-3520] Add support for ALWAYS generation type with PostgreSQL auto-increment column.
 - GH PR#946 - [CORE-3524] Prevent auto-increment column silently failing on Oracle.
 - GH PR#949 - [CORE-3526] TABLE is a reserved keyword in H2database since 1.4.197
 - GH PR#963 - [CORE-3556] No default values for changes' properties
 - GH PR#965 - [CORE-3558] Unique constraint name is ignored when using the addColumn change
 - GH PR#970 - Fix Java 1.9+ versions require jaxb as separate dependency
 - GH PR#971 - Add Class-Path entry to the manifest file to simplify command line execution
 - GH PR#975 - NULL date value in prepared statement requires type in MSSQL
 - GH PR#986 - XMLSerializer: Correct Map value serialization
 - GH PR#993 - Improve ChangeFactory initialization time
 - GH Issue#1035 - Change how Liquibase produces debug logs
 - GH Issue#1051 - Update liquibase-core.jar to exclude ServiceLoader files
 - GH PR#1053 - Update liquibase_autocomplete.shape
 - GH PR#1059 - Allow multiple column unique constraints on table creation.
 - GH Issue#1069 - Patch Liquibase Runner plugin for Jenkins
 - GH Issue#1070 - Enable <command>--help without databse connection
 - GH PR#1082 - Correct include bash script
 - GH PR#1096 - Fix sequence statement generation for PostgreSQL <= 9.4
 - GH Issue#1104 - Fix maven-liquibase offline diff to prevent errors
 - GH Issue#1113 - Fix schema name using "--defaultSchemaName" on a non-default schema
 - GH PR#1120 - LiquibaseServletListener.contextInitialized() improved with Embedded Derby
 - GH Issue#1220 - Fix how JAVA_HOME env variable is handled

Changes in version 3.10.0 (2020.6.12)
- [Pro] Built-in runWith="sqlplus"
- New "runWith" changeSet extension point
- Added liquibase_autocomplete_mac.bash completion script

Changes in version 3.9.0 (2020.5.13)
- [Pro] New ""--format=json" argument for diff command

Changes in version 4.0.0 Beta1 (2020.4.20)
- MAJOR CHANGE: Replaced old custom classpath scanner with java.util.ServiceLoader for finding extensions
- MAJOR CHANGE: Refactored logging system to clean up API and use java.util.Logging
- Fixes to ConstraintsConfig https://github.com/liquibase/liquibase/pull/954
- ignoreLines command in formatted sql log https://github.com/liquibase/liquibase/pull/877
- postgresql >= 10: use identity columns for autoincrement https://github.com/liquibase/liquibase/pull/874
- Using proxy user for Oracle Connections https://github.com/liquibase/liquibase/pull/894
- Capture table remarks on mysql https://github.com/liquibase/liquibase/pull/895
- Add PERIOD to reserved words for MariaDB https://github.com/liquibase/liquibase/pull/896
- Don't require columnDataType on H2 for addNotNullConstraint https://github.com/liquibase/liquibase/pull/851
- Do not remove trailing /'s of comments like /* dsds */ https://github.com/liquibase/liquibase/pull/853
- Require type xsd:string to where element of update element https://github.com/liquibase/liquibase/pull/875/files
- runOnChange change set runs every time even if there wasn't changed https://github.com/liquibase/liquibase/pull/891
- Indexes with DESC sorting are not created for PostgreSQL https://github.com/liquibase/liquibase/pull/880
- Added Ingress support https://github.com/liquibase/liquibase/pull/683
- Support boolean in firebird 3.0 https://github.com/liquibase/liquibase/pull/757
- Change Log Parameters from Environment Variable https://github.com/liquibase/liquibase/pull/758
- Adds clearCheckSums property in spring integration https://github.com/liquibase/liquibase/pull/792
- Oracle datatype translation changes https://github.com/liquibase/liquibase/pull/797
- Implement Sequence Support for MariaDB https://github.com/liquibase/liquibase/pull/852
- Cleanup checksum classes https://github.com/liquibase/liquibase/pull/869
- Fix Turkish uppercase column keys bug https://github.com/liquibase/liquibase/pull/857
- Generate diff with onDelete and onUpdate https://github.com/liquibase/liquibase/pull/858
- PrimaryKeySnapshotGenerator throws NPE for SQLite https://github.com/liquibase/liquibase/pull/856
- Handle java.sql.Time when setting prepared statement parameter values in CSV filese https://github.com/liquibase/liquibase/pull/859
- DB2 LUW supports boolean data type column from version 11.1.1.1 https://github.com/liquibase/liquibase/pull/865
- Offline history support not correctly closing files https://github.com/liquibase/liquibase/pull/863
- Use computeIfAbsent to avoid Liquibase concurrency issues https://github.com/liquibase/liquibase/pull/866
- Firebird does not support RESTRICT option on Foreign Keys https://github.com/liquibase/liquibase/pull/761
- Liquibase was ignoring DatabaseFunction value and processing only SequenceNextValueFunction when creating tables and generating column default value. https://github.com/liquibase/liquibase/pull/785
- Restore usage of `DatabaseList.definitionMatches` to match the `dbms` tag against the database type https://github.com/liquibase/liquibase/pull/811
- DEPLOYMENT_ID column header not included in offline updateSql CSV https://github.com/liquibase/liquibase/pull/813
- Can't set some parameters for snapshot & generate changelog https://github.com/liquibase/liquibase/pull/822
- UUID type handling improvements https://github.com/liquibase/liquibase/pull/838
- Correctly close yaml file in generateChagneLog https://github.com/liquibase/liquibase/pull/844
- Adding restricted words for MSSQL Server Database https://github.com/liquibase/liquibase/pull/825
- Getting a java.io.FileNotFoundException using Liquibase with Spring reactive web https://github.com/liquibase/liquibase/pull/814
- FileSystemResourceAccessor fails with non-hierarchical URLS on classpath https://github.com/liquibase/liquibase/pull/830
- fix oracle date literal without millis https://github.com/liquibase/liquibase/pull/828
- fix nullPointerException when migrating RedShift https://github.com/liquibase/liquibase/pull/823
- Prints the SQL error code on Exception https://github.com/liquibase/liquibase/pull/833
- Fixed SetColumnRemarks for mysql https://github.com/liquibase/liquibase/pull/835
- Allow "NOW" and "Today" literal capabilities in CSV filese https://github.com/liquibase/liquibase/pull/808
- Add ability to disable running of Liquibase via CDILiquibaseConfig https://github.com/liquibase/liquibase/pull/804

Changes in version 3.8.9 (2020.4.06)
- Fixed an issue with how Liquibase handles SMALLINT columns in PostgreSQL when generating a changelog.
- Improved `generateChangeLog` command to assume a `diffTypes` that includes "data" when the `dataOutputDirectory` parameter is used. Most users looking to export data as part of `generateChangeLog` can now simply use the `dataOuputDirectory` parameter without needing to specify `diffTypes`.
- Enabled the use of the `--schemas` parameter to work on either side of the `snapshot` command.
- Enabled `generatechangelog` in PostgreSQL to correctly order `create`, `function`, and `trigger` statements.
- Improved the use of dblink objects when using `diff` command.

Changes in version 3.8.8 (2020.3.19)
- `rollbackOneChangeSetSQL` now works correctly with the Liquibase Maven plugin.
- Liquibase Pro no longer generates procedural code with incorrect SQL syntax when running `generateChangeLog` against a MySQL database.

Changes in version 3.8.7 (2020.2.21)

- New liquibase history command
- [Pro] New liquibase rollbackOneUpdate command
- PR#927 CompositeClassLoader does not implement getResource(String)
- `liquibase --help` was improved to include missing commands and correct information

Changes in version 3.8.6 (2020.2.6)

- New graphical installer for Windows and Mac
- New examples directory with sample xml and sql changelogs and test h2 database
- [Pro] New RollbackOneChangeSet and RollbackOneChangeSetSQL commands
- Updated default Mysql driver to com.mysql.cj.jdbc.Driver
- Removed non-jdbc compatible "SET DEFINE OFF" from generated SQL on Oracle
- Fixed --excludeObjects/--includeObjects arguments in diff

Changes in version 3.8.5 (2020.1.13)

- Fixes issue in which Liquibase did not add `DESC` to an `id` column
- CLI once again accepts sqlFile, delimiter, rollbackScript, and outputSchemaAs arguments
- Fixes Stored Procedure whitespace impacting update calls
- Fixes generateChangelog failure when there are missing NOT NULL constraints.
- Fixes updateSQL, which was not including schemaName for package bodies.
- Fixes bug in which Liquibase was not always capturing `create package body` while generating changeLog
- Liquibase CLI now gives a more useful error message when an invalid character is passed to a command.
- Fixes an MSSQL issue, which threw an exception when doing diff/diffChangeLog between offline connections (such as when snapshotting json files)
- Fixes an MSSQL issue, which incorrectly generated `datetime` data type column when using`diff` & `diffChangeLog`
- Liquibase Maven plugin fails while executing/using "diff" and "generateChangeLog" with PostgreSQL)

Changes in version 3.8.4 (2019.12.23)

- Fixed a 'Class not Found' exception error when using Java +9.
- Fixed a 'Cannot Use Default Schema Name' error when users diff against an SQL Server snapshot file.
- Fixed an 'Unexpected type: java.util.Date' error when using a defaultValueDate attribute in a YAML changelog.

Changes in version 3.8.3 (2019.12.19)

- Liquibase-Maven plugin now works with Java 9+.
- Expired license messages should be far less verbose and excitable.

Changes in version 3.8.2 (2019.11.26)

- Pro stored logic snapshot logic now supports postgresql and db2
- Using generateChangeLog/diffChangeLog to generate formatted sql changelogs now works with Liquibase Pro's stored logic support
- CDI-related classes moved back out of the main liquibase jar into an optional jar
- Fixed issue with indexes backing foreign keys not always being caputured in diffChangeLog/generateChangeLog
- Fixed issue with diffChangeLog/generateChangeLog generating primary keys when column order doesn't match the table's column order

Changes in version 3.8.1 (2019.11.5)

- [PRO] Oracle and SQL Server users can now reverse engineer database changes for stored logic such as triggers, functions & procedures using generateChangeLog, snapshot, diff, and diffChangeLog commands.
- diff command writes to an external file using --outputFile flag
- updateSQL command no longer outputs to liquibase.log
- Cleaned up unexpected entries in diffchangelog.xml for SQL Server

Changes in version 3.8.0 (2019.8.16)

- [CORE-3462] - Add new procedural database code change types for Liquibase Pro

Changes in version 3.7.0 (2019.7.16)

- [CORE-3303] - Allow disabling shouldRun configuration via CDI integration
- [CORE-3388] - DB2 LUW supports boolean data type column from version 11.1.1.1
- [CORE-3400] - add "manifoldclass:" to list of skipped URL protocols in DefaultPackageScanClassResolver
- [CORE-2377] - Using replaceIfExists with <createView> generates DROP statements
- [CORE-2971] - Comments at end of statements are incorrectly parsed
- [CORE-3124] - Indexes with DESC sorting are not created for PostgreSQL
- [CORE-3159] - class cast exception when running command line
- [CORE-3174] - Plugin does not create parent directory
- [CORE-3211] - Firebird does not support RESTRICT option on Foreign Keys
- [CORE-3251] - SQL Server Changesets Not Escaping Keywords
- [CORE-3365] - PrimaryKeySnapshotGenerator throws NPE for SQLite
- [CORE-3375] - addNotNullConstraint on h2 still requires (unused) columnDataType
- [CORE-3386] - includeAll can't resolve relativeToChangelogFile path within a jar file
- [CORE-3437] - MariaDB 10.3.4+ problem with add column PERIOD
- [CORE-2235] - Support priority-based selection of Precondition implementation
- [CORE-3205] - Change Log Parameters from Environment Variable

Changes in version 3.6.3 (2019.1.29)

- [CORE-3100] - diff with uppercase reference database name
- [CORE-3141] - ForeignKeySnapshotGenerator broken with recent SQL Server driver
- [CORE-3192] - Error while including resources with includeAll directive
- [CORE-3221] - Parsing valueDate Attribute of column Tag leads to precision loss and generating SQL for Oracle DB is broken
- [CORE-3222] - Bin zip doesn't work due to missing slf4j-api JAR
- [CORE-3231] - NPE in LogService.pushContext for MDCs that don't allow null values
- [CORE-3242] - MS SQL Server 2008 support issue
- [CORE-3256] - Verbose flag not getting interperated during 'status' command.
- [CORE-3293] - Non global change log parameters are wrongly resolved in inner files
- [CORE-3296] - CommandLineUtils::getBanner fails if manifest entries are missing
- [CORE-3335] - Not possible to register/unregister SqlGenerators during execution of changeSet
- [CORE-3348] - MSSQLDatabase class has a bug when connecting to SQL Server 2008 databases

Changes in version 3.6.2 (2018.06.30)

- [CORE-3129] - PostgreSQL dropPrimaryKey with objectQuotingStrategy="QUOTE_ALL_OBJECTS"
- [CORE-3206] - Liquibase 3.6.x is binary api-incompatible with 3.5.x
- [CORE-3213] - Changelog with includeAll will not find child changelogs in multi-modules Spring Boot's executable JAR
- [CORE-3229] - Oracle 11g doesn't support TIMESTAMP WITHOUT TIME ZONE data type

Changes in version 3.6.1 (2018.04.11)

- [CORE-3200] - Wrong SQL generator is selected
- [CORE-3201] - Command line missing required dependencies in 3.6.0 tarball
- [CORE-3198] - Configuration option to prefer internal XSD usage

Changes in version 3.6.0 (2018.04.5)

- [CORE-1609] - Command Prompt: Can't connect to database with a special character in pwd
- [CORE-1852] - checksums depend on environment
- [CORE-1888] - Sybase error for TINYINT, INT, BIGINT: Can't specify a length, scale or storage property on type 'int/tinyint/bigint'.
- [CORE-2008] - H2 Supports minValue and maxValue in Sequences since Version 1.3.175, but Liquibase does not
- [CORE-2033] - NPE during Diff when case sensitive table missing
- [CORE-2135] - liquibase corrupting UTF-8 changesets
- [CORE-2162] - MSSQL: Multiple inserts in sqlFile do not fail as expected
- [CORE-2191] - Update on SQL Azure database fails due to unavailable sys.extended_properties
- [CORE-2527] - Sybase create table fails because column name is too long
- [CORE-2631] - dbdoc does not specify content type
- [CORE-2739] - --delimiter parameter in liquibase --help
- [CORE-2747] - CreateView / Oracle: Keyword REPLACE in view definition prohibits "or replace" in DDL statement
- [CORE-2772] - primaryKeyExists check fails on Turkish locale for some chars
- [CORE-2773] - DB2 AS/400 - generateChangeLog throwing Exception
- [CORE-2796] - Handle TimeStamps with nano second precision correctly
- [CORE-2797] - Determine the DB2 data server type correctly
- [CORE-2820] - Unsupported ReorganizeTable for DB2 z/OS causes changelog validation to fail
- [CORE-2821] - AddForeignKey statement generates incorrect SQL for DB2 z/OS
- [CORE-2826] - indexExists precondition fails on AS400 + JDBCDatabaseSnapshot/Snapshot generator code is not coded generically
- [CORE-2843] - Sql wrong lexical analysis for string literals - escaped single quotes are misparsed
- [CORE-2875] - UTF-8 character not understood
- [CORE-2894] - Oracle snapshot not detecting custom datatypes in different schemas
- [CORE-2909] - column remarks for mysql should be escaped
- [CORE-2911] - Oracle: generateChangeLog on RAW types not including the size param
- [CORE-2928] - Invalid snapshot of "duplicate" foreign keys
- [CORE-2929] - Views with definitions that start with a comment are not captured correctly in generateChangeLog
- [CORE-2940] - Do not print warning when DBA_RECYCLEBIN is not available
- [CORE-2944] - outputDefaultSchema and outputDefaultCatalog command line parameters not respected
- [CORE-2953] - update with valueSequenceNext and schema produces wrong SQL on oracle
- [CORE-2965] - Custom Properties XML Changelog
- [CORE-2992] - liquibase.util.grammar.TokenMgrError: Lexical error at line 1, column 71. Encountered: "\u00b4" (180), after : ""
- [CORE-2993] - createSequence with order denied on DB2
- [CORE-3002] - SQLAnywhere: Revert Unique Index failed
- [CORE-3006] - Oracle CSV-Import: "String index out of range: -1"
- [CORE-3009] - SQLAnywhere: Drop Default Value failed
- [CORE-3020] - No warning when included file doesn't exist (missing extension)
- [CORE-3033] - typo in postgresql reserverd word
- [CORE-3040] - onlyUpdate="true" flag generates empty statements for MySQL DB
- [CORE-3046] - Fix faulty snakeyaml class-path entry after upgrade to 1.17
- [CORE-3051] - SQLAnywhere: Drop Table does not support CASCADE
- [CORE-3054] - SQLAnywhere: java-coredump on changeSet-SQL
- [CORE-3055] - SQLAnywhere: supports Sequences
- [CORE-3063] - Integration tests failing on master
- [CORE-3069] - Checksum: line endings not standardized on windows if multiple lines
- [CORE-3072] - Add usePreparedStatements="true|false" flag to loadData
- [CORE-3076] - SUM is not reserved word for HsqlDB
- [CORE-3099] - Non English environment; invalid tablename and column name can be generated because of toUpperCase toLowerCase method which is dependent to locale in java
- [CORE-3101] - dropPrimaryKey TABLE_SCHEMA = 'null'
- [CORE-3106] - SQLAnywhere: DROP INDEX should use tablename
- [CORE-3115] - Prefix space in column type causing the Unknown LiquibaseDataType with the latest release
- [CORE-3117] - TIMESTAMP WITH TIME ZONE datatype is changed to TIMESTAMP in H2
- [CORE-3119] - Maven failing to use driverPropertiesFile from Liquibase Properties File
- [CORE-3135] - Column t1.tgconstrname does not exist
- [CORE-3138] - SQLAnywhere: AddAutoIncrement-Statement is wrong
- [CORE-3140] - MSSQL2005 doesn't support built-in function original_db_name()
- [CORE-3155] - CSV line content behind inline comment character doesn't contribute to checksum
- [CORE-3162] - Diff problem with MSSQL case sensitive database
- [CORE-3171] - LoadUpdateData doesn't work on SAP SQLAnywhere
- [CORE-3180] - A DBMS-specific change set referencing a DBMS-specific rollback can't be parsed on a different DBMS
- [CORE-2735] - Add possibility to test rollback with SpringLiquibase
- [CORE-1225] - Add support for tablespace assigned to liquibase metadata tables
- [CORE-2628] - defaultSchema parameter doesn't do Connection.setCatalog() for SpringLiquibase
- [CORE-2842] - MSSQL: Support creating clustered unique constraints
- [CORE-2891] - Liquibase "Command" objects can be extended and overridden
- [CORE-2919] - Make all variants of Liquibase.listUnrunChangeSets public
- [CORE-2952] - Use the clustered index if duplicate indexes are defined
- [CORE-2955] - MSSQL: Capture explicit null default values on snapshot and generate/diffChangeLog
- [CORE-2970] - MSSQL: Support default value constraint names
- [CORE-2977] - Generated primary key constraint name doesn't match Postgres default
- [CORE-2985] - MSSQL Snapshot performance improvements
- [CORE-3000] - Oracle JDBC batch for load_data
- [CORE-3005] - Consideration of DB2/400 system views
- [CORE-3017] - Add path attribute to createView
- [CORE-3018] - Oracle: support remarks on createView
- [CORE-3045] - Support indexes on views
- [CORE-3079] - Make includeObjects and excludeObjects affect which objects are snapshotted
- [CORE-3094] - HSQLDB UUID support
- [CORE-2920] - Using "//" as an endDelimiter stopped working 3.5.0

Changes in version 3.5.5 (2018.02.5)

-  [CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog

Changes in version 3.5.4 (2018.02.5)

- [CORE-2863] - Issue with Spring boot 1.4.0 - 1.4.3
- [CORE-2898] - includeAll broken in 3.5.1
- [CORE-2948] - Changelog with includeAll will not find child changelogs in Spring Boot's executable JAR
- [CORE-2978] - AddAutoIncrement on Postgres does not work when no schema is specified
- [CORE-3123] - ResourceComparator is not applied for includeAll
- [CORE-3139] - ClassLoaderResourceAccessor cannot read jar path resources from SpringLiquibase
- [CORE-3015] - Oracle: diffChangeLog TIMESTAMP WITH LOCAL TIME ZONE correctly

Changes in version 3.5.3 (2016.10.13)

- No changes

Changes in version 3.5.2 (2016.09.21)

-  [CORE-1863] - PostgreSQL blob is mapped to bytea instead of oid
-  [CORE-2693] - Postgresql dropAll with serial columns fails because tables are dropped then sequences which no longer exist
-  [CORE-2698] - <sqlFile> Oracle scripts with ending / are not actually getting executed even with splitStatements="false"
-  [CORE-2752] - Jtds has silent exceptions in db.getConnectionSchemaName
-  [CORE-2753] - defaultValueSequenceNext forgets schema name
-  [CORE-2754] - update table columns are not quoted when requested
-  [CORE-2756] - Null pointer exception from FileSystemResourceAccessor
-  [CORE-2757] - Databasechangelog ORDEREXECUTED and DEPLOYMENT_ID not updated when a changeSet is reran
-  [CORE-2758] - Debian package shouldn't symlink liquibase binary to absolute path
-  [CORE-2761] - 3.5.1: includeAll from the command line uses the absolute path as the changeSet path
-  [CORE-2763] - Postgresql schemas should default to lower case
-  [CORE-2765] - dbms in preConditions yaml changelog causes parsing error
-  [CORE-2770] - Can't read remarks from mssql 2000
-  [CORE-2774] - Can't read all columns from mssql2000
-  [CORE-2775] - Oracle Sequences not Generated in generateChangeLog after 3.4.1
-  [CORE-2778] - Sybase ASE: Incorrect syntax near the keyword 'ALTER'
-  [CORE-2780] - java.sql.SQLException: PooledConnection has already been closed
-  [CORE-2781] - DB2: custom-generated indexes for primary keys are not preserved in diff/generateChangeLog
-  [CORE-2784] - REGRESSION: Column creation of type 'TIMESTAMP WITHOUT TIMEZONE' fails on PostgreSQL
-  [CORE-2785] - Status command inconsistent with databasechangelog table
-  [CORE-2786] - Incorrect xml scheme for changlog file
-  [CORE-2787] - YAML Snapshot parser not handling strings that get stored as binary
-  [CORE-2789] - Postgres does not have a type "BINARY"
-  [CORE-2791] - Strip off trailing end delimiter in createProcedure on update, include on updateSql
-  [CORE-2793] - using property as startWith attribute
-  [CORE-2794] - Make CSV files created by Liquibase readable by Liquibase
-  [CORE-2795] - Fix a NullPointerException in DiffToChangeLog.sortMissingObjects
-  [CORE-2804] - defaultValueSequenceNext forgets schema name H2/PG/etc
-  [CORE-2805] - Multiple calls to generateChecksum() impacting deploy performance
-  [CORE-2806] - JsonSnapshotParser does not close stream after parsing
-  [CORE-2807] - Column data type "real" incorrectly translated to "double precision" for PostgreSQL, should be "real"
-  [CORE-2810] - defaultValueBoolean="false" generates wrong SQL for MySQL
-  [CORE-2811] - FileSystemResourceAccessor basepath/includeAll
-  [CORE-2813] - java.lang.NullPointerException when creating new ClassLoaderResourceAccessor();
-  [CORE-2814] - DB2: Quoting strategy not respected, objects are always saved as upper case
-  [CORE-2815] - Rollback by tag doesn't roll back tagDatabase changeSet
-  [CORE-2816] - Snapshot error when snapshotting an index or primary key against a case-sensitive column
-  [CORE-2818] - DEPLOYMENT_ID not created for Sybase in DATABASECHANGELOG, liquibase 3.5.1
-  [CORE-2819] - AbstractJdbcData getConnectionSchemaName() methods fails for Sybase
-  [CORE-2823] - DROP PRIMARY KEY fails for Sybase database update
-  [CORE-2827] - MSSQL: misc default value fixes
-  [CORE-2828] - MSSQL not capturing that primary key are non-clustered in generateChangeLog
-  [CORE-2830] - GenerateChangeLog does not handle tables with compound primary keys
-  [CORE-2831] - MySql BIT(1) defaultValue not snapshotted as Boolean
-  [CORE-2835] - GenerateChangeLog doesn't correctly "numeric DEFAULT '" " columns
-  [CORE-2836] - addAutoIncrement generates inconsistent sequence name for mixed-case table
-  [CORE-2837] - addAutoIncrement doesn't apply default schema in nextval call (PostgreSQL)
-  [CORE-2838] - createProcedure schema in the changelog is overwritten by defaultSchemaName
-  [CORE-2840] - MSSQL createProcedure for CREATE MERGE AS procedures need a trailing semicolon
-  [CORE-2843] - Sql wrong lexical analysis for string literals - escaped single quotes are misparsed
-  [CORE-2846] - DATABASECHANGELOG table query failed on postgres on first run
-  [CORE-2849] - Fail to execute with sequences
-  [CORE-2853] - Diff comparisions reporting differences between '0.0' and '0' in decimals
-  [CORE-2863] - Issue with Spring boot 1.4.0
-  [CORE-2864] - Regression for defaultSchemaName on MSSQL
-  [CORE-2867] - liquibase with MySQL raises exception "Table 'DATABASECHANGELOG' already exists" when using separate liquibase schema
-  [CORE-2868] - <createProcedure> Adds schema/username to package and package body in oracle making them invalid
-  [CORE-2869] - Without a specified classpath, using includeAll with relativeToChangelogFile="true" fails
-  [CORE-2872] - "ON DELETE" not supported for FK constraints in Sybase
-  [CORE-2876] - Issue with Spring boot 1.4.0 Repackaged
-  [CORE-2878] - MSSQL setTableRemarks limited to 200 chars
-  [CORE-2881] - DiffChangeLog unnecessarily includes referenceTableCatalogName attribute if comparing Schema with different names
-  [CORE-2885] - AddColumn with defaultValueSequenceNext generated incorrect SQL for PostgreSQL
-  [CORE-2788] - handle VARBINARY type in Oracle and H2
-  [CORE-2800] - Add flag to diff command that suppresses reporting of column order difference in tables
-  [CORE-1984] - Support for non-split rollback statements in Formatted SQL
-  [CORE-2768] - Have the .deb and .rpm part of the release on github
-  [CORE-2782] - Update SnakeYAML version to 1.17
-  [CORE-2801] - Add method to Logger to allow closing of the output file stream
-  [CORE-2844] - Traverse parent changelogs for rollbacks
-  [CORE-2848] - Oracle: primary keys that use a pre-existing index drop the index along with the primary key on rollback
-  [CORE-2852] - Postgresql snapshots not correctly handling serial-backing sequences
-  [CORE-2857] - Support clustered primary keys in postgresql
-  [CORE-2873] - Postgresql custom types are snapshotted as having length 2147483647
-  [CORE-2874] - Ensure consistent charset encoding usage

Changes in version 3.5.1 (2016.05.10)

- [CORE-2727] - NPE in DiffToReport.print() method
- [CORE-2728] - Classloading broken in 3.5.0 with nested jars
- [CORE-2729] - NullPointerException on Diff
- [CORE-2731] - diff fails with NullPointerException
- [CORE-2732] - releaseLock fails because ObjectQuotingStrategy is reset to LEGACY
- [CORE-2733] - relativeToChangelogFile fails with FileSystemResourceAccessor
- [CORE-2734] - Liquibase no longer handle newline correctly in endDelimiter when using sqlFile change
- [CORE-2743] - CSV whitespace trimmed in 3.5.0
- [CORE-2744] - changeset with loadUpdateData changes checksum in 3.5.0
- [CORE-2745] - Performance degradation of sqlFile change
- [CORE-2746] - Oracle: handle case when schema name contains a hyphen
- [CORE-2750] - MSSQL catalog/database included all the time

Changes in version 3.5.0 (2016.04.21)

- New "created" attribute on changeSet
- New runOrder="first|last" attribute on changeSet to override where in the changelog it is ran
- New "context" attribute on <include> and <includeAll> to control when changelogs are included
- Support for AND/OR context expressions in formatted SQL changelogs
- Support for changelog parameters in formatted SQL chagnelogs
- Improved multi-schema snapshot and comparison
- Improved SQL parsing
- Performance improvements
- Lots of bug fixes

- [CORE-155] - Default-context attribute in databaseChangeLog tag
- [CORE-575] - foreign key constraint is generated with onUpdate and onDelete restrict
- [CORE-910] - Lock is not released if nocount is on for sql server 2008
- [CORE-1166] - Diff doesn't detect 'on delete cascade' statements
- [CORE-1447] - Inconsistent line endings in updateSQL produced files
- [CORE-1468] - Number / Numeric handling must differ between different database systems
- [CORE-1679] - Changelog SQL routines are partially aware of Database quoting strategy
- [CORE-1690] - OSGiPackageScanClassResolver does not search extensions in Fragment bundles
- [CORE-1836] - Oracle Integer mapping
- [CORE-1839] - H2 multicolumn unique constraints
- [CORE-1883] - Performance issue with large datamodels
- [CORE-1887] - Including the same ChangeSet twice causes ValidationFailedException
- [CORE-1897] - stripComments from SQL is trimming quoted string
- [CORE-1935] - Formatted SQL generateChangeLog failed
- [CORE-1966] - Invalid object name 'INFORMATION_SCHEMA.SEQUENCES' when running generateChangeLog with SQL Azure
- [CORE-1985] - constraints tag is missing referencedTableSchemaName
- [CORE-2024] - Move SDK to its own module
- [CORE-2056] - generateChangeLog generates too many 'constraints'
- [CORE-2059] - escapeObjectName has no respect for quotingStrategy QUOTE_ONLY_RESERVED_WORDS on Postgres
- [CORE-2184] - diff doesn't write correct Changesets for foreign key constraints with ON DELETE CASCADE
- [CORE-2211] - Liquibase tries to execute commented lines in custom SQL file
- [CORE-2213] - Liquibase does not support comments in a line after the semicolon
- [CORE-2333] - loadData fails with quoted string containing a comma
- [CORE-2376] - LiquibaseCatalogName in commandLine not working correctly
- [CORE-2438] - DeleteGenerator does not handle parameter names and values with $ or \ properly
- [CORE-2456] - includeObjects/excludeObjects not work for UniqueConstraint
- [CORE-2474] - dropFirst does not drop objects in not default schemas on Postgres 9+ using sql format with multiple schemas
- [CORE-2483] - Liquibase does not delete unzip directories from temporary directory
- [CORE-2501] - Derby sequenceCurrentValue Incorrect SQL
- [CORE-2502] - Handle single-tag <databaseChangeLog/> tag on diffChangeLog
- [CORE-2504] - NumberFormatException while checking precondition
- [CORE-2508] - GlobalConfiguration liquibase.should.run alias is incorrect
- [CORE-2512] - Both defautValueComputed and defaultValue included in addColumn diffChangeLog outputs if value is a computed value
- [CORE-2513] - DiffChangeLog fixing changed indexes misses "unique" attribute
- [CORE-2514] - bad Maven documentation for outputDefaultCatalog and outputDefaultSchema
- [CORE-2517] - Foreign key snapshot improvements for DB2
- [CORE-2518] - DB2: snapshot sees DATE types as TIMESTAMP
- [CORE-2520] - Spurious warning with includeAll: file is not a recognized file type
- [CORE-2521] - addAutoIncrement on Postgres generates invalid SQL when specific schema is used
- [CORE-2522] - Derby: support for findForeignKeyConstraints
- [CORE-2523] - H2: use "REAL" as datatype for "FLOAT"
- [CORE-2524] - MSSQL: need to escape default value constraint names
- [CORE-2525] - Error on dropping sequence
- [CORE-2526] - Oracle 12: TIMESTAMP(3) not handled
- [CORE-2528] - Oracle: improve unique constraint snapshot query performance
- [CORE-2529] - MSSQL auto_increment numeric is 1 smaller in generateChangeLog
- [CORE-2531] - Wrong type mapping of BINARY type in MySQL, H2, HSQLDB and Postgresql
- [CORE-2533] - Poor runtime performance
- [CORE-2538] - regenerate maven documentation for liqubase on website
- [CORE-2545] - MSSQL: createProcedure fails if replaceIfExists=true and body uses "create proc" rather than "create procedure"
- [CORE-2547] - liquibase.database.core.DB2Database - Improper Resource Shutdown or Release
- [CORE-2548] - primaryKeyTablespace is ignored in PostgreSQL
- [CORE-2550] - Proper handling BINARY type in MySQL and H2
- [CORE-2552] - Oracle performance: fetch view definition along with original view to reduce the number of needed queries
- [CORE-2553] - DB2: add ability to disable automatic reorg statements
- [CORE-2556] - Cannot execute update code including quoted strings containing semicolons
- [CORE-2558] - includeAll incorrectly sorting by including WEB-INF/classes when running in an ear
- [CORE-2561] - Add "cycle" attribute to alterSequence
- [CORE-2562] - MSSQL: Snapshot errors if table names have single quote marks in them
- [CORE-2563] - DiffChangeLog that adds columns does not preserve column order
- [CORE-2565] - Escaping of the sequence names with schema generates invalid statements for Oracle DB
- [CORE-2581] - mysql update emits incorrect sql for BIT(1) when default specified
- [CORE-2587] - Validation not performed before rollback
- [CORE-2591] - autoincrement problem with ORA 12c + COMPATIBLE param to 11
- [CORE-2595] - DefaultPackageScanClassResolver fails if "fat" jar has dirs and files with same name
- [CORE-2599] - generateChangelog produces incorrect values for binary type
- [CORE-2601] - ORDER keyword isn't escaped for Oracle
- [CORE-2602] - StackOverflowError generating snapshot
- [CORE-2604] - PostgreSQL datatype bit(n) column gives BOOLEAN(n) type for CreateTableChange genearated sql statement
- [CORE-2605] - addColumn with multiple columns, does not create the constraints
- [CORE-2606] - PostgreSQL : Table creation with datatype smallserial fails.
- [CORE-2609] - Liquibase command line fails when using JTDS driver with SSO
- [CORE-2611] - Sybase ASE generated table name is wrong. Roll back CORE-2447
- [CORE-2615] - Multi-schema snapshot bugfixes
- [CORE-2623] - Oracle: primary keys on tables recovered from recyclebin are not properly snapshotted
- [CORE-2624] - MSSQL: better support for user defined types
- [CORE-2625] - Diff: should not be case sensitive in column default value functions
- [CORE-2629] - SQL syntax doesn't allow commenting indepenrent parts.
- [CORE-2632] - Postgres index drop needs schema
- [CORE-2635] - Applied changeset not detected
- [CORE-2636] - includeAll uses full file path
- [CORE-2637] - Creating column with tinyint(1) instead created as default tinyint
- [CORE-2641] - runOnChange change set runs every time even if there wasn't changed
- [CORE-2642] - Xsd files are not resolved from classpath when resolving from resourceAccessor fails.
- [CORE-2643] - loadData
- [CORE-2645] - Rollback referencing a change set in current child file cannot be parsed
- [CORE-2653] - Liquibase show difference for some UniqueConstraint and Views in SQL SERVER databases but Actually there is NO difference when i compare the SQL scripts manually
- [CORE-2660] - Multiple contexts not recognized in formatted SQL when using AND
- [CORE-2662] - NumberFormatException with default values of type 'real' in postgresql
- [CORE-2663] - New MySQL 5.7.x reserved keywords are not being escaped
- [CORE-2664] - createChangeLog has incorrect nesting of constraints in YAML format
- [CORE-2666] - InsertSetGenerator hard-codes the InsertGenerator
- [CORE-2669] - Impossible to extend BaseLiquibaseTask in a non-deprecated way
- [CORE-2670] - Impossible to create table on mssql with remarks containing apostrophes
- [CORE-2671] - oracle timestamps with time zone
- [CORE-2672] - createSequence with order produces invalid statement on postgresql
- [CORE-2673] - includeAll relativeToChangelogFile doesn't work for FileSystemResourceAccessor
- [CORE-2674] - LoadUpdateData with onlyUpdate="true" generates invalid statements for Oracle DB
- [CORE-2677] - Dropping a postgres index fails
- [CORE-2679] - Hibernate diffChangeLog NullPointerException @ MissingPrimaryKeyChangeGenerator.fixMissing(MissingPrimaryKeyChangeGenerator.java:76)
- [CORE-2680] - Generating a futureRollbackSql when using "classpath:" prefix doesn't recognise any of the ran change sets.
- [CORE-2681] - H2 (automatic mixed mode): createTable: columns remarks ignored
- [CORE-2683] - dropAll dropping sequences that have been dropped via earlier cascade
- [CORE-2684] - Context is ignored with runOnChange and including file (sqlFile/loadUpdateData)
- [CORE-2686] - StandardChangeLogHistoryService.hasDatabaseChangeLogTable value is cached too aggressively
- [CORE-2687] - <sqlFile endDelimiter="go" if endDelimiter has whitespace in my sql it is not spliting
- [CORE-2688] - Loading data from csv with number of rows dividable by 51
- [CORE-2689] - TIMESTAMP parameters dropped for DB2
- [CORE-2690] - SetTableRemarksGenerator double escapes remark
- [CORE-2693] - Postgresql dropAll with serial columns fails because tables are dropped then sequences which no longer exist
- [CORE-2694] - "national character varying" type is not recognized
- [CORE-2698] - <sqlFile> Oracle scripts with ending / are not actually getting executed even with splitStatements="false"
- [CORE-2699] - concurrency causes NullPointerException in DatabaseObjectComparatorFactory.getInstance()
- [CORE-2705] - diffChangeLog generates dropColumn when dropping an index with a computed column
- [CORE-2706] - Two sides of equal are the same
- [CORE-2709] - endDelimiter regexp problem
- [CORE-2711] - Cannot load CSV via loadData
- [CORE-2713] - CreateView disregards replaceIfExists=true when fullDefinition=true
- [CORE-2715] - tableExists and columnExists preconditions fail on MySQL
- [CORE-2718] - H2 Database should query for default schema instead always use PUBLIC
- [CORE-2719] - Oracle: Cannot snapshot primary keys on lower-case tables
- [CORE-2720] - DB2: Capture full view definition in snapshot/generateChangeLog to support column options
- [CORE-2721] - endDelimiter regex does not work in SQL changelogs/changesets
- [CORE-2725] - DB2: Don't include system-generated indexes
- [CORE-521] - Handle Timestamp with Time Zone types where supported
- [CORE-2448] - New "created" attribute on changeSet
- [CORE-2478] - Liquibase dropAll command line does not allow dropping multiple schemas
- [CORE-2540] - Allow vendor independent SEQUENCE definition
- [CORE-2541] - Add support for registering a Change Exec Listener on command line
- [CORE-2560] - Add new runOrder="first|last" attribute to control when a changeSet is ran
- [CORE-2577] - Add resourceComparator attribute to includeAll to override sorting
- [CORE-2578] - Added addUniqueConstraint deferrable"support for Postgresql
- [CORE-449] - Same changeLog can be included multiple times
- [CORE-1969] - Support for AND/OR context expressions in formatted sql
- [CORE-2100] - formatted sql validCheckSum
- [CORE-2115] - Really slow when using fat jars
- [CORE-2225] - please add the OLD check sum to the validation error message
- [CORE-2336] - Use a grammer for parsing SQL rather than regexps
- [CORE-2419] - Support fluent/builder-style change properties
- [CORE-2455] - Improve messages in databasechangelog.description column
- [CORE-2463] - Don't include liquibase tables in dbdoc
- [CORE-2493] - ExecuteShellCommand improvements
- [CORE-2497] - Support setColumnRemarks and setTableRemarks on MSSQL
- [CORE-2499] - Support for commenting lines in csv files
- [CORE-2539] - Ensure each data row in CSV has same # cols as header
- [CORE-2584] - ValidCheckSum is valid for both stored database values and current changeSet checksum
- [CORE-2589] - Output xml changelogs as xml version="1.1"
- [CORE-2612] - Oracle: include BYTE in CHAR and VARCHAR types from snapshot/generateChangeLog
- [CORE-2619] - Make changeLogFile optional for changeSetExecuted
- [CORE-2622] - Maven: Support ISO date syntax for rollback
- [CORE-2626] - Use schemaName in createProcedure
- [CORE-2638] - GenerateChangeLog should include replaceIfExists=true for changed views
- [CORE-2640] - Better handling of replaceIfExists in createProcedure
- [CORE-2651] - Derby: Default unknown version to 10.6 to support sequences
- [CORE-2652] - Formatted sql precondition not expanding changelog parameters
- [CORE-2657] - Add new DATABASECHANGELOG.DEPLOYMENT_ID column to track changeSets deployed together
- [CORE-2658] - Move the liquibase-debian module to a separate profile
- [CORE-2703] - MySQL NCLOB should conver to LONGTEXT CHARACTER SET utf8
- [CORE-2724] - Support offline databases in ant-tasks

Changes in version 3.4.2 (2015.11.24)

- [CORE-2328] - AbstractExecutor should implement execute(Change)
- [CORE-2475] - Informix: Insert valueComputed not used correctly
- [CORE-2543] - Improved support for time stamps in oracle insert change data types
- [CORE-1778] - createSequence doesn't work on MSSQL
- [CORE-1840] - Liquibase fails when run on a computer that can't connect to the internet
- [CORE-2273] - Oracle char column snapshot not differentiating between a default value of 0 and '0'
- [CORE-2285] - Code in Liquibase class inconsistent
- [CORE-2317] - Custom ConfigurationValueProvider not working
- [CORE-2349] - loadUpdateData does not escape column names in "ON DUPLICATE" clause
- [CORE-2407] - Derby keywords not escaped when used as column/table names
- [CORE-2447] - In sybase, schema is bad preixed
- [CORE-2466] - Rollback referencing a change set in another file cannot be parsed
- [CORE-2467] - SSO with jtds MSSQL doesn't work after 3.3.5 for update - null user error
- [CORE-2469] - Error in method ColumnConfig.setValueNumeric(String)
- [CORE-2470] - MSSQL: FindForeignKeyConstraintsGeneratorMSSQL doesn't honor specified schema
- [CORE-2480] - Primary key exist works fine with 3.3.3 not with 3.4.0 in SQL SERVER
- [CORE-2481] - Primary key creation issue with informix
- [CORE-2482] - Number type issue with informix
- [CORE-2484] - dropAll command crashes because it drops sequences before tables
- [CORE-2487] - updateSql does not output anything for prepared statements
- [CORE-2490] - If you have more than one :name token in the where clause of a delete change, you get an Exception
- [CORE-2491] - Shouldn't a custom change produce a warning if run in updateSql mode
- [CORE-2492] - Logger extension liquibase-slf4j no longer usable with 3.4.1
- [CORE-2494] - Pgsql: Exporting/generating badly formatted SQL
- [CORE-2498] - Generation of TIMESTAMP(29) causing error in PSQL log TIMESTAMP(6) WITHOUT TIME ZONE
- [CORE-2500] - Fast check of ColumnExistsPrecondition causing transaction abort on PostgreSQL database
- [CORE-2505] - Missing keywords for H2 database
- [CORE-2510] - loadData on MySQL with > 50 rows fails
- [CORE-2544] - LogFactory does not get reset
- [CORE-2549] - Performance regression in resolving local host
- [CORE-2554] - updateSql command fails on validation when upgrading (2.0.5 ->3.4.1)
- [CORE-2566] - Maven - setting skip= true does not work
- [CORE-2571] - primaryKeyExists precondition generating wrong query
- [CORE-2576] - The 'dbms' attribute on <createProcedure> is not not taken into account when parsing changes
- [CORE-2579] - dropAll failed for Oracle 12c
- [CORE-2580] - Escape column, table and schema on ColumnExistsPrecondition
- [CORE-2588] - Bad cast
- [CORE-2590] - Default constraint names are not quoted
- [CORE-2596] - DatabaseChangeLogLock race condition exists if two nodes both try to create the table
- [CORE-2598] - Postgres generateChangeLog: "length for type varchar cannot exceed 10485760"

Changes in version 3.4.1 (2015.07.28)

- [CORE-998] - Changing index columns leads to wrong output order in the change log xml file.
- [CORE-2104] - ConcurrentModificationException iterating over System.getProperties().entrySet()
- [CORE-2385] - IncludeAll does not work when runing liquibase from inside a jar
- [CORE-2405] - Collation not preserved, depending on configuration
- [CORE-2406] - Escaped built-in data types should be lower case
- [CORE-2408] - Unknown column 'LABELS' in 'field list'
- [CORE-2410] - Snapshot should not include paramaters for MSSQL geometry, geography or sql_variant types
- [CORE-2411] - BLOB string default values not quoted
- [CORE-2412] - Handle Oracle BFILE types
- [CORE-2414] - CLONE - generateChangeLog creates DOUBLE(22) instead of double in MySql
- [CORE-2415] - Custom Logger configuration does not work anymore
- [CORE-2416] - Diff drops and creates primary keys for all tables
- [CORE-2418] - Liquibase 3.4.0 tries to do INSERT instead of UPDATE-Statements with Postgres
- [CORE-2421] - MySQL column sizes are off by 1 in BIGINT and INT for diffChangeLog
- [CORE-2422] - Liquibase intialisation failed
- [CORE-2423] - Sybase IQ : strange procedure called
- [CORE-2426] - Default schema name missing quotes.
- [CORE-2427] - Better handle MSSQL stored procedures with a different defaultSchema and replaceOnExists=true
- [CORE-2428] - liquibase 2.0.3 to 3.3.3
- [CORE-2435] - includeSystemClasspath switch actually includes SystemClassLoader if false
- [CORE-2436] - Logging in ClassLoaderResourceAccessor prevents installation of custom Logger
- [CORE-2437] - Index.toString() contains "unique" if and only if index is NOT unique
- [CORE-2438] - DeleteGenerator does not handle parameter names and values with $ or \ properly
- [CORE-2440] - Not possible to override DefaultLogger using a Logger in a non-liquibase package.
- [CORE-2441] - Creation of foreign key fails in MySQL if database name contains dashes
- [CORE-2442] - Creating MD5 checksum fails if changeSet id contains the character "?"
- [CORE-2443] - Liquibase 3.4.0 ignores third party loggers in certain situations
- [CORE-2446] - endDelimiter splitting does not work in plain SQL files (regression)
- [CORE-2452] - Index names should be quoted on SQL Server
- [CORE-2458] - loadUpdateData will not update
- [CORE-2460] - Postgres index names cannot include schema name
- [CORE-2433] - quoting error in table creation
- [CORE-2359] - Consistently read dataTypeId for all databases
- [CORE-2419] - Support fluent/builder-style change properties
- [CORE-2449] - Correctly detect "Sybase IQ"
- [CORE-2450] - Non-bash /bin/sh gives "[[ not found" error
- [CORE-2451] - SQL scripts should have "USE <database>" in the header on SQL Server
- [CORE-2453] - Informix: Return null for connection schema name
- [CORE-2459] - Un-change Formatted SQL stripComments default back to true
- [CORE-2461] - Don't do DATABASECHANGELOG ALTER statements if column types are different

Changes in version 3.4.0 (2015.06.24)

- [CORE-14] - Dropping default values with MS-SQL
- [CORE-822] - Add a tag to add/update table/column remarks
- [CORE-864] - loaddata performance enhancement
- [CORE-1411] - MariaDB support
- [CORE-2254] - Ability to save snapshot for later comparison
- [CORE-2257] - Ability to use a previously saved database snapshot in diff and generateChangeLog
- [CORE-2302] - Add ability to load nested object/collection properties and BigDecimal properties automatically
- [CORE-2306] - Support passing in a script for rollback to override rollback logic included in the changelog
- [CORE-2308] - Track changeSet contexts and labels in databasechangelog table
- [CORE-2345] - Add XML Type
- [CORE-419] - Allowing ASC and DESC in index definitions
- [CORE-562] - Allow naming of not null constraints
- [CORE-715] - indexExists does a full snapshot
- [CORE-1731] - Support autoincrement in oracle 12c
- [CORE-2124] - Ability to pass properties to a JDBC driver required
- [CORE-2132] - Error message for missing sqlFile reference should be more descriptive
- [CORE-2147] - HsqlDatabase should emit uppercase names when quoting reserved words to preserve case insensitivity
- [CORE-2171] - New ChangeExecListener.runFailed method
- [CORE-2177] - Support NOT(X) syntax for labels
- [CORE-2185] - Few fields needs to be changed as protected and need additional field in RanChangeSet
- [CORE-2217] - Add DataTypeFactory support for delimited data type names, improve resolution of MSSQL data types
- [CORE-2228] - New usingIndexName attribute on addPrimaryKey
- [CORE-2236] - Support .yml extension in YamlChangeLogSerializer
- [CORE-2244] - Handle generating SQL Server DDL where ANSI NULL Default is false
- [CORE-2249] - Index and UniqueConstraint equivalence check should take name into account
- [CORE-2288] - Do not check/updatedatabasechangelog table on status
- [CORE-2292] - New tagExists command for command line
- [CORE-2298] - Allow HSQL to use defaultValueComputed for certain allowed functions on datetime type columns
- [CORE-2299] - Add capability to ignore missing or empty folder with includeAll
- [CORE-2307] - ChangeLog table name option in command line tool
- [CORE-2309] - global/local properties on changesets
- [CORE-2320] - MinGW (Git Bash) support for shell
- [CORE-2334] - Disable CREATE TABLE DATABASECHANGELOG generation when running on OfflineConnection
- [CORE-2336] - Use a grammer for parsing SQL rather than regexps
- [CORE-2358] - Improve data types for Liquibase tables in MSSQL
- [CORE-2359] - Consistently read dataTypeId for all databases
- [CORE-2363] - Improve robustness of MSSQL database case-insensitivity check
- [CORE-2371] - Improve Oracle snapshot performance
- [CORE-2386] - Set the connection default catalog/schema if defaultCatalogName or defaultSchemaName is set
- [CORE-2397] - MSSQL View Snapshot should not use sp_helptext
- [CORE-2399] - DBDoc improvements
- [CORE-2404] - Ability to preserve TEXT type in mssql snapshot and update
- [CORE-842] - Tag database not taking orderexecuted into account
- [CORE-1296] - drop column on ms sql server
- [CORE-1424] - SQL Generation ignores DATETIME parameters
- [CORE-1542] - Sequence is dropped not until a second run of dropAllDatabaseObjects on PostgreSQL
- [CORE-1738] - loadData from csv fails for boolean column (if another column present)
- [CORE-1749] - Update change command does not respect whereParams
- [CORE-1803] - DropAll doesn't delete sequences if they are used as default value in postgres
- [CORE-1904] - Slow indexExists performance in Oracle
- [CORE-1924] - SQLServer diff - DATETIME2 not being handled correctly
- [CORE-2005] - /usr/bin/liquibase: Syntax error: "else" unexpected
- [CORE-2018] - Quotes stripped from index filter_conditions on snapshot
- [CORE-2019] - Comments in empty rollback prevent execution
- [CORE-2041] - Escaping of reserved keywords in HSQLDB
- [CORE-2096] - DiffChangeLog with changed indexes generates drop/add in the wrong order
- [CORE-2109] - dropAll fails for statements the database requires to run non-transactionally
- [CORE-2113] - Informix text datatype fixes
- [CORE-2133] - Oracle: GenerateChangeLog of a table with DEFAULT VALUE NULL creates defaultValueComputed="NULL"
- [CORE-2167] - Issues with generateChangeLog of unique constraints on DB2
- [CORE-2169] - offline mode seems non-deterministic
- [CORE-2178] - Fatal exception acquiring lock in SQL Server databases with case-sensitive collation
- [CORE-2196] - Ant: "Unable to update database." without explanation
- [CORE-2209] - Oracle snapshot sometimes creates "GENERATED ALWAYS AS (null)"
- [CORE-2211] - Liquibase tries to execute commented lines in custom SQL file
- [CORE-2219] - DB2 for zOs - adding primary key always emits REORG but REORG does not exist on Db2 for zOs
- [CORE-2222] - TIMESTAMP parameters dropped for PostgreSQL
- [CORE-2224] - Index uniqueness is not always recognized correctly
- [CORE-2227] - CLONE - UpdateSQL needs to append a "/" to the end of createProcedure for Oracle
- [CORE-2232] - Support schema other than public on PostgreSQL
- [CORE-2233] - Oracle Timestamp precision lost in generateChangeLog
- [CORE-2234] - columnExists precondition could be much faster (Oracle, mssql)
- [CORE-2237] - YamlChangeLogSerializer does not correctly serialize a changeset
- [CORE-2251] - Adding column with type DATETIME doesn't work for PostgreSQL
- [CORE-2252] - XMLChangeLogSerializer writes array object for rollback tag content
- [CORE-2253] - Handle oracle varchar <-> clob conversions in diffChangeLog
- [CORE-2256] - Drop Sequences before Tables
- [CORE-2266] - DiffChangeLog: Invalid changelog when a primary key backing index is changed
- [CORE-2267] - Rollback fails for mixed-case objects created with QUOTE_ALL_OBJECTS
- [CORE-2270] - Doubledash inside quoted text causes parsing error
- [CORE-2271] - CLONE - DiffChangeLog: Invalid changelog when a unique constraint backing index is changed
- [CORE-2272] - DiffChangeLog must drop foreign keys before primary keys
- [CORE-2273] - Oracle char column snapshot not differentiating between a default value of 0 and '0'
- [CORE-2275] - YAML update fails with Unexpected error running Liquibase: java.util.LinkedHashMap cannot be cast to java.util.List
- [CORE-2281] - Oracle snapshot performance issue with many multiple views
- [CORE-2291] - ObjectQuotingStrategy not reset correctly after changeSet
- [CORE-2295] - includeAll tries to load all files instead only *.xml
- [CORE-2300] - Unsigned Int / Bigint cannot be created
- [CORE-2305] - Snapshot output too verbose
- [CORE-2316] - Data type registry occasionally returns wrong data type implementation
- [CORE-2321] - Liquibase tag command tags too much
- [CORE-2324] - diffChangeLog does not handle changes in sequence incrementBy, maxValue or ordered
- [CORE-2331] - Support for MSSQL collation in data type description broken
- [CORE-2340] - Add support for extensions to override the built-in change log, snapshot serializers
- [CORE-2355] - Improve updateSQL performance
- [CORE-2361] - preConditions, rollback, property, include, includeAll cannot be serialized
- [CORE-2373] - Local DTD files not found in subdirectory
- [CORE-2378] - Adding a new "CustomChange" triggers ClassNotFoundException
- [CORE-2380] - Support reading of gzip files
- [CORE-2381] - Fix unique constraint generator for informix
- [CORE-2383] - Change formatted SQL stripComments default from "true" to "false"
- [CORE-2385] - IncludeAll does not work when runing liquibase from inside a jar
- [CORE-2387] - dropPrimaryKey without constraint name on sql server doesn't query schema correctly
- [CORE-2388] - Views not equal in different schemas
- [CORE-2390] - NullPointerException when generating changelog
- [CORE-2391] - column type doesn't respect unsigned
- [CORE-2393] - changeSet contexts created with maven generateChangeLog are in parentheses
- [CORE-2401] - MSSQL handling timestamp according to sql standard, not sqlserver usage
- [CORE-2402] - Oracle NCLOB defaultValues not read correctly


Changes in version 3.3.5 (2015.05.28)

-  [CORE-2379] - Project.version set to 3.3.4-SNAPSHOT in 3.3.4 final


Changes in version 3.3.4 (2015.05.27)

-  [CORE-2360] - Maven - Skip is active by default
-  [CORE-2199] - Liquibase adds a semicolon after a stored proc definition making the stored proc unusable
-  [CORE-2344] - Unknown host exception on OS RHEL 6.5
-  [CORE-2346] - IncludeAll does not work when runing liquibase from inside a jar
-  [CORE-2357] - alterSequence does not work as expected when you need to change the cache size
-  [CORE-2366] - Derby Network server works with command line but not with maven "Liquibase skipped due to maven configuration"
-  [CORE-2368] - No SQL outputted for <update> change

Changes in version 3.3.3 (2015.04.28)

-  [CORE-1768] - Oracle dropAll fails on spatial tables and sequences
-  [CORE-1840] - Liquibase fails when run on a computer that can't connect to the internet
-  [CORE-1857] - Wrong column size detection on varchar2 fields with char as datatype
-  [CORE-1866] - Filtering changelog list by includeAll tag is not working
-  [CORE-1943] - Handle Error: InetAddress.getLocalHost().getHostName() UnknownHostException results in NoClassDefFoundError
-  [CORE-1958] - Column type of "TIMESTAMP(6)" under MySql converted to TIMESTAMP dropping fractional seconds
-  [CORE-1967] - includeAll uses full file path for sql changelogs
-  [CORE-2023] - Problem using includeAll with SpringLiquibase
-  [CORE-2126] - Postgres 9.3 - Drop table With Cascade - Not Supported
-  [CORE-2156] - Resource loader can't load changelog file
-  [CORE-2186] - AbstractResourceAccessor#convertToPath(String, String) fails for processing includeAll from Classpath
-  [CORE-2192] - NoSuchMethodException when generating offline Oracle migration script
-  [CORE-2199] - Liquibase adds a semicolon after a stored proc definition making the stored proc unusable
-  [CORE-2202] - liquibase.should.run inverted boolean
-  [CORE-2204] - valueNumeric not being set when using prepared statements
-  [CORE-2206] - diffChangeLog with JPA-annotated entities causes ConcurrentModificationException
-  [CORE-2208] - Typo in message
-  [CORE-2210] - java.lang.NullPointerException when file is empty
-  [CORE-2214] - When inserting string value starting and ending with apostrophes (quotes) the value is not quoted in the generated SQL
-  [CORE-2218] - Regression on modifyDataType : VARCHAR2 was supported on 3.2...and fails on 3.3
-  [CORE-2239] - Remarks attribute in renameColumn causes parse error
-  [CORE-2240] - setDropFirst(true) still broken on empty database
-  [CORE-2262] - 3.3.2 ant task dies on NPE in ChangeLogParameters
-  [CORE-2263] - Index Snapshot - doesn't include upper cased name indexes when db is NOT case sensitive
-  [CORE-2274] - Ant Upade Task does not consider changeLogFile correctly if it is contained in a JAR
-  [CORE-2279] - Rollback fails in MS SQL 2008 using liquibase 3.3.2
-  [CORE-2284] - Creating a DatabaseChangeLog() results in NPE
-  [CORE-2290] - Liquibase gives different results from Ant and the command line
-  [CORE-2301] - Regression from 3.2.3 in mssql 2000 unsupported usage of varchar(max) and sys.extenden_properties
-  [CORE-2304] - Autoincrement on type INT4 fails
-  [CORE-2310] - IncludeAll Fails with Unknown Reason Error
-  [CORE-2315] - NPE in CommandlineResourceAccessor
-  [CORE-2325] - Liquibase - New versions break DB create
-  [CORE-2329] - Escaped reserved keywords in HSQL are stored in lower case instead of upper case.
-  [CORE-2330] - includeAll uses full file path with includeAll
-  [CORE-2261] - UpdateSQL needs to append a "/" to the end of createProcedure for Oracle
-  [CORE-2287] - Improve support for Groovy-based tests in Eclipse
-  [CORE-2296] - Upgrade Groovy and Spock to maintained versions
-  [CORE-2318] - Add support for converting BigDecimal objects to a SQL string via DataTypeFactory

Changes in version 3.3.2 (2015.01.08)
- Support for ignoring objects in diffChangeLog and generateChangeLog
- Bugfixes

- [CORE-875] - Ignore tables for diffs and generateChangelog
- [CORE-1877] - SQLOutput prints endDelimiter regexes
- [CORE-2114] - AddAutoIncrement on Postgres does not work when changes are applied on a specific schema
- [CORE-2141] - handling dependencies and WAR as classpath
- [CORE-2166] - SpringLiquibase: includeAll within jar causes SetupException
- [CORE-2172] - dropPrimaryKey without constraint name on sql server doesn't honour schema information
- [CORE-2174] - Bad exception handling in OracleDatabase.setConnection
- [CORE-2180] - NPE with bad name
- [CORE-2182] - ClassLoader leak due to shutdown hooks


Changes in version 3.3.1 (2014.12.08)
- IncludeAll bugfixes
- Performance improvements
- Datatype handling fixes
- Fix for JSON parsing
- Other bugfixes

- [CORE-1920] - SpringLiqubase includeAll is not including files
- [CORE-2009] - ClassCastException when executing a custom task change (AntClassLoader problem)
- [CORE-2097] - "mvn liquibase:futureRollbackSQL" asks for tag, count or date
- [CORE-2099] - SQLAnywhere support (Driver not capable)
- [CORE-2103] - changelogSchemaName/changelogCatalogName configuration options will not work on Oracle DB
- [CORE-2104] - ConcurrentModificationException iterating over System.getProperties().entrySet()
- [CORE-2105] - Maven profile performing dropAll and update on Oracle failing with an error on populated database.
- [CORE-2107] - LOWER() keyword fails on Postgres createIndex task
- [CORE-2108] - dropAll command trying to drop column on table that has already been dropped
- [CORE-2114] - AddAutoIncrement on Postgres does not work when changes are applied on a specific schema
- [CORE-2116] - Could not find implementation of liquibase.logging.Logger
- [CORE-2118] - Change default diffChangeLog/generateChangeLog objectQuotingStrategy back to LEGACY
- [CORE-2119] - Bad finally block in SpringLiquibase.afterPropertiesSet()
- [CORE-2120] - LoadUpdateData with value=NUMERIC quoting values
- [CORE-2121] - DB2: DiffChangeLog/GenerateChangeLog/DropAll sees alias column and tries to drop/add them
- [CORE-2127] - updateSQL creates duplicate DATABASECHANGELOGLOCK tables
- [CORE-2130] - setFetchSize to a negative value breaks Oracle JDBC Driver
- [CORE-2134] - ExecuteCommand won't run with no os attribute.
- [CORE-2136] - Mysql must quote PARTITION as a keyword
- [CORE-2137] - Special characters (&#13;) copied during generateChangelog on DB2/400
- [CORE-2139] - H2Database.supportsDropTableCascadeConstraints() returns false
- [CORE-2141] - handling dependencies and WAR as classpath
- [CORE-2142] - generateChangeLog not including all columns in a table
- [CORE-2146] - snakeyaml is pulled in as transitive dependency for using projects
- [CORE-2149] - Liquibase command line fails
- [CORE-2150] - On the 3.3.5.0.3, liquibase --version returns 3.2.0
- [CORE-2153] - Liquibase 3.2.1 is no longer compatible with Oracle 9
- [CORE-2155] - diffTypes=data fails with java.sql.SQLException: Attribute value not valid (dataOutputDirectory attribute causes build to fail)
- [CORE-2156] - Resource loader can't load changelog file
- [CORE-2157] - SQLException if there are single quotes in ChangeSet
- [CORE-2159] - Datetime2 no longer used for MSSQL
- [CORE-2161] - includeAll relativeToChangelogFile="true" doesn't work
- [CORE-2164] - SpringLiquibase: includeAll within jar causes NullPointerException
- [CORE-2115] - Really slow when using fat jars
- [CORE-2125] - Make DatabaseChangeLog#include(String, boolean, ResourceAccessor) public
- [CORE-2148] - Build failure on jdk-1.8
- [CORE-2152] - Change logs in json format not processed by liquibase - parsing errors

Changes in version 3.3.0 (2014.11.03)
- New "label" attribute on changeSet
- New empty and output change tags
- Support for clustered/nonclustered primary keys and indexes
- Saving of remarks in mysql and mssql
- Official RPM and DEB packages
- Refactoring/update of Ant integration

- [CORE-16] - Support for nonclustered primary keys in mssql
- [CORE-54] - Support System Properties in Maven Plugin
- [CORE-1528] - Installer for Liquibase
- [CORE-1598] - support for rename sequence
- [CORE-1914] - New Change function: output
- [CORE-1942] - Support for changeSet labels
- [CORE-549] - relativeToChangelogFile for loadData, loadUpdateData, sqlFile
- [CORE-1438] - createView should support having the entire view definition in the change body
- [CORE-1502] - CLONE - UpdateSQL needs to append a \r/\n to the end of createProcedure for Oracle
- [CORE-1654] - logicalFilePath support in formatted sql
- [CORE-1660] - remarks attribute is ignored in MSSQL
- [CORE-1932] - support for encrypted passwords / custom properties
- [CORE-1946] - Have a rpm package for liquibase (built with maven)
- [CORE-1963] - Ability to define full CREATE VIEW statement in <createView> change.
- [CORE-1990] - Preserve inline comments in view snapshots in mssql
- [CORE-2060] - Support liquibase.properties files with unknown properties
- [CORE-2061] - Improvements to Informix support
- [CORE-2062] - Add onlyUpdate flag to loadUpdateData
- [CORE-2064] - Use ignoreClassPathPrefix for rollback as well
- [CORE-2065] - Use DOUBLE PRECISION for DOUBLE with Firebird
- [CORE-2066] - Support for outputFile in command line
- [CORE-2067] - Refactor Ant Task codebase
- [CORE-2068] - New liquibase.hostDescription property for additional details in the DATABASECHANGELOGLOCK table
- [CORE-2069] - Use prepared statement in <update> change whenever a clob type is used
- [CORE-2072] - Do not include Oracle internal tables in snapshot/diff
- [CORE-870] - Postgres, in an ALTER TABLE ALTER COLUMN statement, sometimes needs USING clause
- [CORE-945] - Oracle : Temporary tables are created as regular tables
- [CORE-1463] - Views not generated correctly with generateChangelog
- [CORE-1556] - remarks attribute ignored for mysql
- [CORE-1723] - unable to update on DB2/400, version V6R1, on jt400-6.7.jar
- [CORE-1745] - afterColumn not working in MySQL
- [CORE-1774] - Autocommit not restored on close in SpringLiquibase
- [CORE-1882] - NullPointerException when MySQL foreign key points to an invalid table
- [CORE-1919] - SpringLiquibase fails when dropFirst is true
- [CORE-1922] - Sequence is not a reserved object name in HSQLDB
- [CORE-1925] - liquibase scripts can not represent clustered indexes
- [CORE-1937] - Oracle Float and VARCHAR precisions in changelog generated by generateChangeLog are incorrect
- [CORE-1952] - liquibase loadData does not properly load numeric field in boolean always as false
- [CORE-1956] - Double and float converted to FLOAT8(*, 17) and FLOAT4(*, 8) in PostgreSQL
- [CORE-1958] - Column type of TIMESTAMP(6) under MySql converted to TIMESTAMP dropping fractional seconds
- [CORE-1974] - dbchangelog-3.1.xsd missing <empty>
- [CORE-1977] - CreateSequence with cacheSize=0 failing on Oracle
- [CORE-1979] - MSSQL should not include parameters in SYSNAME data types
- [CORE-1981] - Parameters set in included file are no longer set in 3.2.0
- [CORE-1982] - Snapshot outputs defautlValueDate as defaultValueComputed on MSSQL for dates not in ISO format with a T in the middle
- [CORE-1986] - includeAll from changeLogs within a jar is not working
- [CORE-1988] - Reported size for Oracle NVARCHAR2 columns is wrong
- [CORE-1993] - Drop table with cascade is not supported by Sybase
- [CORE-1996] - addNotNullConstraint on h2 database has unexpected side effects
- [CORE-1997] - Bit changelog default value of 1 executed as 0
- [CORE-2002] - AbstractResourceAccessor generates path in a unpredictable way
- [CORE-2010] - Oracle data type SDO_GEOMETRY snapshotted as SDO_GEOMETRY(1)
- [CORE-2014] - applyToRollback property ignored when rollback changes are specified
- [CORE-2015] - DiffChangeLog writes to the wrong point in the file on windows if file uses \n not \r\n
- [CORE-2020] - Oracle default value current_timestamp converted to systimestamp
- [CORE-2021] - Column remarks not snapshotted in mssql
- [CORE-2026] - Oracle columns of type ANYDATA are snapshotted with a size
- [CORE-2028] - generateChangeLog on SQL Anywhere 11.0.1 throws DatabaseException Driver Not Capable
- [CORE-2032] - Snapshot incorrectly including clob/blob sizes on diff
- [CORE-2051] - Not quoting VIEW params with spaces when snapshotting
- [CORE-2054] - Add new 'computed' column attribute to differentiate between an actual column name and a function as a column
- [CORE-2063] - Fix for H2 autoincrement start with and increment by syntax
- [CORE-2070] - dropAllForeignKeyConstraints does not work on Firebird databases
- [CORE-2075] - generateChangelog generates bad definition for TIME type
- [CORE-2080] - Liquibase empty change not present in XSD version 3.2
- [CORE-2081] - PrimaryKeyExists precondition without tableName is broken
- [CORE-2082] - Column snapshot on PostgreSQL does not include precision information for numeric data type
- [CORE-2087] - Executing against Oracle doesn't respect liquibaseSchemaName or liquibaseCatalogName
- [CORE-2088] - outputDefaultSchema and outputDefaultCatalog command line parameters not respected
- [CORE-2093] - Error: Property 'relativeToChangelogFile' not found on object type liquibase.change.core.LoadDataChange
- [CORE-2094] - Liquibase.dropAll() should reset the lock service
- [CORE-2095] - Invalid generated changeset for mysql bit with defaultValue 0

Changes in version 3.2.3 (2014.11.03)
- Bugfixes

- [CORE-1919] - SpringLiquibase fails when dropFirst is true
- [CORE-1987] - 'mvn liquibase:diff' does not find any differences between databases
- [CORE-1988] - Reported size for Oracle NVARCHAR2 columns is wrong
- [CORE-1989] - Cannot set objectQuotingStrategy on root databaseChangeLog node
- [CORE-2002] - AbstractResourceAccessor generates path in a unpredictable way
- [CORE-2003] - Could not find implementation of liquibase.logging.Logger
- [CORE-2042] - If liquibase.jar is nested in another jar/war/ear, it fails to start with a 'cannot find implementation of liquibase.logging.Logger' error
- [CORE-2058] - Load/Update tags should use 'is null' not '= null' for null comparisons
- [CORE-2070] - dropAllForeignKeyConstraints does not work on Firebird databases
- [CORE-2075] - generateChangelog generates bad definition for TIME type
- [CORE-2080] - Liquibase 'empty' change not present in XSD version 3.2
- [CORE-2065] - Use DOUBLE PRECISION for DOUBLE with Firebird
- [CORE-54] - Support System Properties in Maven Plugin


Changes in version 3.2.2 (2014.07.23)
- Fix for bug in checksum computation vs. 3.1.1

- [CORE-1938] - defaultValueNumeric="0" or defaultValue="0" is translated to 0.0
- [CORE-1950] - Checksum validation failed after Liquibase upgrade (3.1.1 -> 3.2.0)
- [CORE-1959] - generateChangeLog without changeLogFile - better error message

Changes in version 3.2.1 (2014.07.18)
- Fixes to checksums on valueNumeric, defaultValueNumeric fields
- Fixes to checksums on createProcuedure and sql changes
- Fixed null pointer exception performing a tag
- Fixes to Spring support
- Fixed issue handling changeSet with multiple comments
- Fix support for sqlFile tags in rollback
- Fixed sqlFile not using changelog parameters
- Other bug fixes

- [CORE-1844] - bulkFetch of foreign keys on Oracle is very slow
- [CORE-1918] - Multiple comment blocks in changesets no longer works
- [CORE-1920] - SpringLiqubase includeAll is not including files
- [CORE-1922] - 3.2.0 Regression due to CORE-1721
- [CORE-1923] - Error raised: Unknown Reason when doing tagging via command line
- [CORE-1930] - Snapshot command returns no information on MSSQL
- [CORE-1933] - [3.0.8 -> 3.2.0] pom.xml: 2Mb of superfluous dependencies
- [CORE-1934] - file path in databasechangelog is absoulte since liquibase 3.2.0 when using includeAll inside a jar
- [CORE-1936] - NullPointerException while diffing database against hibernate.cfg.xml
- [CORE-1938] - defaultValueNumeric="0" or defaultValue="0" is translated to 0.0
- [CORE-1940] - Maximum Oracle Sequence fails to be parsed as a BigInteger
- [CORE-1944] - NullPointerException when tagging through Ant before applying changesets
- [CORE-1947] - Liquibase dependency to jetty-servlet/velocity should be <optional>true</optional>
- [CORE-1950] - Checksum validation failed after Liquibase upgrade (3.1.1 -> 3.2.0)
- [CORE-1957] - Using VARCHAR2 column type fails for Hsqldb running in oracle syntax mode
- [CORE-1960] - "Could not find implementation of liquibase.logging.Logger" starts appearing after migration from 3.1.1 to 3.2.0
- [CORE-1970] - NullPointerException on rollback with <sqlFile> tag
- [CORE-1746] - Support <sqlFile> parameters
- [CORE-1951] - Regression on 3.2.0 : --diffTypes=data generates Unknown Reason Exception

Changes in version 3.2.0 (2014.06.02)

- Support for and/or/not logic in context expressions
- Better matching of default schemas in database comparisons
- Improvements to resource accessor logic
- Improved memory usage when diffing data
- Improved UTF8 usage
- Better handling if TIMESTAMP [WITH | WITHOUT] TIME ZONE datatypes in pgsql
- Standardization of parsing logic across XML/YAML and JSON
- New command line function: snapshot
- Start of SDK for easier Liquibase extension development and testing:
--- Database watch command
--- Standard "sdk workspace"
--- Beta version of database vagrant configurations
- Snapshot listener interface

- [CORE-1742] - Standardized system for managing configuration options in core and extensions
- [CORE-1751] - More detailed API for returning changeSet statuses
- [CORE-1783] - Command line option: snapshot
- [CORE-1815] - Liquibase SDK command to easily watch database
- [CORE-1821] - Snapshot listener interface

- [CORE-1116] - Allow for both "AND" and "OR" specifications of which contexts to run
- [CORE-1422] - Support changeset comments in formatted SQL
- [CORE-1536] - Support specifying the referenceDefaultSchemaName for diff operations
- [CORE-1635] - Generated changelog missing unique constraints should be output before foreign keys
- [CORE-1682] - More machine-independent handling of filesystem-located resources
- [CORE-1695] - Better handling of Postgres timestamp with/without time zone
- [CORE-1706] - Excessive reading from databasechangelog table
- [CORE-1726] - Added offline parameter to generate insert databasechangelog statements
- [CORE-1758] - Add outputDefaultSchema flags to ant
- [CORE-1776] - System-independent checksums
- [CORE-1823] - Search for liquibase.properties in classpath in additional to local filesystem
- [CORE-1874] - Improve XML and other parsers for better extensiblity
- [CORE-1905] - Yaml parser supports .yml extension as well as .yaml

- [CORE-209] - Double Create Database Lock Table using updateSQL
- [CORE-421] - NPE in MySqlDatabaseSnapshot during diff operation when "enum" or "timestamp" column was removed from table
- [CORE-461] - Wrong datatypes for timestamps generated with generateChangeLog
- [CORE-871] - Unable to use changeSetPath in rollback tag to refer to another change log file
- [CORE-877] - Bug with column type "TIMESTAMP WITHOUT TIME ZONE"
- [CORE-976] - GenerateChangeLog with data: java heap space error
- [CORE-1097] - Liquibase adds a semicolon after a stored proc definition making the stored proc unusable
- [CORE-1108] - Oracle : Unable to create complex primary key for loadUpdateData
- [CORE-1284] - Memory leak in ExecutorService
- [CORE-1563] - dropAll does not delete Sequences on Derby
- [CORE-1572] - Regression: diff generates full schema instead of changes when using liquibase-hibernate4
- [CORE-1578] - changeset checksum calculates differently on linux and windows
- [CORE-1601] - updateSql generates SQL with unexpected linefeeds, breaks SQLPlus
- [CORE-1642] - Special character issue after upgrade
- [CORE-1643] - DB2: defaultSchemaName and changelogSchemaName are not respected
- [CORE-1650] - dropAll doesn't work on Informix
- [CORE-1668] - defaultSchemaName ignored on createTable in H2
- [CORE-1673] - Empty default value is not recorded for MySQL
- [CORE-1676] - Colons in changeSet IDs no longer supported
- [CORE-1688] - The 'valuum' extension seems not to be working under version 3.0.8 of liquibase
- [CORE-1701] - Oracle: snapshot of default date/time values come back as to_date functions
- [CORE-1714] - 2->3.1 migration error
- [CORE-1715] - 2 -> 3.1 migration, 3.1 errors if there are single quotes in comments
- [CORE-1718] - foreignKeyConstraintExists precondition fails with constraints on unique keys
- [CORE-1721] - HsqlDatabase.escapeObjectName(...) ignores QUOTE_ALL_OBJECTS
- [CORE-1727] - Drop default constraint syntax for DB2 not correct
- [CORE-1728] - Only sequence name is captured by snapshot process and used in generateChangeLog
- [CORE-1733] - Data in diffChangeLog coming through as one row per changeSet
- [CORE-1734] - updateSQL is not including content from sqlFile (at least not when ran from Linux)
- [CORE-1739] - Liquibase ignores Oracle varchar precision
- [CORE-1743] - Snapshot VARCHAR(MAX) correctly on sqlserver
- [CORE-1744] - Derby: UpdateSQL not including creating databasechangeloglock table if needed
- [CORE-1748] - Maven Plugin does not use outputDefaultCatalog property
- [CORE-1750] - liquibase-modify-column 3.0 broken with liquibase-core 3.1.1
- [CORE-1752] - Oracle XML Datatype snapshot containing size
- [CORE-1753] - HSQLDB 1.8 does not support catalogs
- [CORE-1754] - Default value functions on Oracle snapshoted as "defaultValue"
- [CORE-1755] - DefaultValueComputed is quoted for Char, Varchar, Clob, MediumInt and SmallInt types
- [CORE-1756] - Oracle indexes with functions not returned correctly in generateChangeLog
- [CORE-1765] - Failed to drop a VIEW pointing on not existing table from another schema
- [CORE-1767] - Oracle snapshot not capturing all indexes
- [CORE-1772] - Informix cannot drop constraints
- [CORE-1774] - Autocommit not restored on close in SpringLiquibase
- [CORE-1775] - Informix error when creating primary key
- [CORE-1779] - User Defined Types Come back with Unnecessary Size specifier in diff
- [CORE-1782] - dropALL fails when tables are referenced by other tables in another schema
- [CORE-1784] - GenerateChangeLog with objects in multiple schemas returns objects from multiple schemas and empty createTable statements
- [CORE-1788] - dropAll does not work in not default schemas using postgresql
- [CORE-1794] - Drop index failing for sybase
- [CORE-1797] - Autoincrement on type Serial8 fails
- [CORE-1798] - Invalid type syntax in Informix for Int(10) and SMALLINT(5) and FRACTION(3)
- [CORE-1799] - Attempted recreation of DATABASECHANGELOG in informix
- [CORE-1817] - Foreign Key Constraints Built on Unique Constraints are not captured in generateChangeLog
- [CORE-1818] - SQL Server "smalldatetime" converted to "datetime" on update
- [CORE-1824] - GUID Default values not quoted correctly in MSSQL
- [CORE-1828] - sqlFile should fail when file does not exists
- [CORE-1831] - CREATE/DROP INDEX issue: Sybase ASE 15.7.0
- [CORE-1834] - generateChangeLog creates DOUBLE(22) instead of double in MySql
- [CORE-1840] - Liquibase fails when run on a computer that can't connect to the internet
- [CORE-1843] - includeAll does not alphabetize classpath loaded files
- [CORE-1853] - Liquibase generates invalid SQL for 'character varying' type
- [CORE-1856] - Ability for Change classes to verify update and rollback succeeded
- [CORE-1859] - DataTypeFactory doesn't take database into account
- [CORE-1861] - MSSQLDatabase.isCaseSensitive() provides a wrong information
- [CORE-1878] - Maven plugin behaviour different than command line with the same parameters
- [CORE-1881] - Case sensitivity issue with tableExists precondition
- [CORE-1893] - type="DATETIME" in changelog is converted to TIMESTAMP in MySql
- [CORE-1899] - Non-existing referenced sql files doesn't report error
- [CORE-1901] - DropPrimaryKey - Fails in Postgres
- [CORE-1906] - Diff between objects in different named default schemas doesn't see them as the same object
- [CORE-1912] - Unit tests fail due to dependency on system time zone

Changes in version 3.1.1 (2014.01.16)
Bug Fix release. Most critical bug is CORE-1704

- [CORE-1704] - Checksum errors for changeSets with createProcedure in 3.1.0 vs 3.0.x
- [CORE-1707] - TableRowCountGenerator shouldn't pass tableName as catalogName
- [CORE-1710] - Oracle: NUMBER data type size specification is deployed with a precision specifier even though precision isn't specified in the change log
- [CORE-1711] - rowCount doesn't work if only the tableName is given
- [CORE-1713] - liquibase.precondition.core.ForeignKeyExistsPrecondition exception
- [CORE-1715] - Errors if there are single quotes in comments
- [CORE-1709] - generateChangeLog returns tables created by Materialized Views as standard tables

Changes in version 3.1.0 (2014.01.09)
- Major Changes:
     Offline Datatabase Support
     CreateProcedures supports external files and dbms attribute
     New dropProcedure change
     New tableIsEmpty precondition
     New rowCount precondition
     Mysql enum & set support
     Mysql date/time/timestamp size parameter support
     MSSQL 2012 sequence support
     General Sybase & DB2 improvements
     Change- and precondition- level callbacks in ChangeExecListener
     Extensions can define custom XSDs and namespaces
     Maven support for futureRollbackSql command

- [CORE-1424] - SQL Generation ignores DATETIME parameters
- [CORE-1579] - DefaultPackageScanClassResolver should suppress LinkageErrors
- [CORE-1626] - createIndex does not work for function based indexes anymore
- [CORE-1659] - "dbms" attribute is ignored for "sql" tag inside "rollback"
- [CORE-1666] - CommandLineResourceAccessor throwing exception from getResourceAsStream()
- [CORE-1669] - DB2Database the method getDefaultCatalogName returns the defaultSchemaName.
- [CORE-1677] - Default Sybase schema name
- [CORE-1680] - DbDoc fails with NullPointerException
- [CORE-1685] - NPE at SchemaComparator
- [CORE-1692] - generateChangeLog does not handle sets correct
- [CORE-1693] - SqlCheck precondition's 'expectedResult' accounts for the amount of columns instead of the amount of rows
- [CORE-1696] - Syntax error in command line UNIX shell script
- [CORE-1698] - Add FormattedSQL support for comma separated list dbms attribute
- [CORE-1428] - Support Springs classpath*: prefix for includeAll
- [CORE-1458] - Maven support for futureRollbackSql
- [CORE-1473] - JSON/YAML support for onFail/onError and onFailMessage/onErrorMessage on preconditions
- [CORE-1474] - Support 'dbms' attribute on <createProcedure>
- [CORE-1476] - Support reading unique constraints and sequences in DB2 for iSeries
- [CORE-1544] - liquibase-maven-plugin: diffChangeLog goal is missing
- [CORE-1638] - SnapshotGenerator extension system does not allow replacement of generators
- [CORE-1639] - Support foreignKeyConstraintExists precondition specifying table and columns instead of name
- [CORE-1656] - Extension to allow updateSql without a live database connection
- [CORE-1657] - Extension support for external DatabaseChangeLog tables
- [CORE-1663] - Support replaceIfExists for createView on H2
- [CORE-1671] - Add millisecond precision Time, Timestamp, and DateTime for MySQL
- [CORE-1681] - Log change and precondition execution into the ChangeExecListener
- [CORE-641] - Support ${} params in included sql files
- [CORE-883] - updateSQL without database access
- [CORE-929] - Support for ordering of columns in addColumn
- [CORE-1310] - Support column remarks for mysql
- [CORE-1513] - tableIsEmpty precondition
- [CORE-1514] - rowCount precondition
- [CORE-1558] - Modify Liquibase to allow extensions to specify prefix for xml tags
- [CORE-1617] - dropProcedure change
- [CORE-1618] - Support defining createProcedure body in an external file
- [CORE-1661] - Add support for MSSQL sequences

Changes in version 3.0.8 (2013.12.12)

- Major Changes:
    Improvements to data type handling
    Bug fixes
    Performance improvements

- [CORE-1224] - Enum column types are not appropriately represented in the change log created by generateChangeLog
- [CORE-1299] - modifyDataType does not auto reorg on DB2
- [CORE-1302] - MySQL syntax for autoincrement column with start value
- [CORE-1357] - Postgresql sequences create error in log files
- [CORE-1368] - Unable to recreate DB from generated change logs
- [CORE-1427] - Not generateChangeLog properly for INT2 type for Postgres
- [CORE-1430] - When I was in sybase database using liquibase create the index, reported "information_schema.constraints" not found error
- [CORE-1432] - Liquibase H2 InsertOrUpdateGeneratorH2 fails if primary key column name contains $ character
- [CORE-1446] - Liquibase changelog generation can add linefeed to defaultValueComputed if last column
- [CORE-1454] - Precondition negation does not seem to work
- [CORE-1455] - Value not taken into account when inserting data with YAML
- [CORE-1484] - very poor performance of dropAll on Oracle
- [CORE-1496] - Custom Change validation happening before being fully initialized
- [CORE-1531] - includeAll with relativeToChangeLogFile fails under certain conditions
- [CORE-1537] - Liquibase: diffChangeLog on DB2 performing out of order steps
- [CORE-1538] - diffChangeLog for DB2 injects invalid characters in xml
- [CORE-1540] - Call 'Reorg table' after modifyDataType on DB2
- [CORE-1541] - Column type="LONGVARCHAR" fails
- [CORE-1545] - Oracle wrong LONG datatype declaration
- [CORE-1547] - CLONE - H2 (and other) support for BLOB and CLOB is incorrect
- [CORE-1548] - Oracle Data Type: DATE - defaultValueComputed should be defaultValue
- [CORE-1549] - Oracle Data Type: INTERVAL YEAR TO MONTH - returned at "INTERNAL(2) YEAR"
- [CORE-1550] - Oracle Data Type: NCLOB - Receive SQL error when specifying NCLOB size
- [CORE-1551] - Oracle Data Type: NCHAR
- [CORE-1552] - Oracle Data Type: NVARCHAR2 - Column sizing is wrong
- [CORE-1553] - dropDefaultValue does not work on SQL Server
- [CORE-1554] - dbDoc for Informix IDS
- [CORE-1555] - Oracle UID reserved word not detected
- [CORE-1557] - Mysql: BLOB type changes to LONGBLOB
- [CORE-1559] - Columns defined as "serial" are created as "int" without autoincrement in Postgres
- [CORE-1562] - update throws Recoverable Exception
- [CORE-1564] - Broken links in dbDoc
- [CORE-1566] - DB2 Datatype - DBCLOB, GRAPHIC, VARGRAPHIC doubling datatype size
- [CORE-1567] - DB2 Datatype - defaultValueComputed being used instead of defaultValue for DBCLOB, TIME, TIMESTAMP, DATE
- [CORE-1568] - DB2 Datatype - REAL and XML should not have datatype sizes
- [CORE-1571] - updateDatabase can't find a changelog
- [CORE-1572] - Regression: diff generates full schema instead of changes when using liquibase-hibernate4
- [CORE-1580] - Mysql SET type not handled correctly
- [CORE-1581] - modifyDataType ignores additional info of newDataType
- [CORE-1582] - SQLServer datatype for TIMESTAMP
- [CORE-1583] - Wrong datatype with renameColumn
- [CORE-1584] - Unable do rollback not in transaction block
- [CORE-1586] - MySQL DataType - defaultValueComputed being injected into TIMESTAMP, VARBINARY, BINARY, YEAR
- [CORE-1587] - MySQL Datatype - VARBINARY vs LONGBLOB confusion
- [CORE-1588] - MySQL DataType - BIT size and default not captured on Snapshot
- [CORE-1589] - MySQL DataType - BLOB becomes LONGBLOB
- [CORE-1590] - MySQL DataType - DOUBLE sizing not persisted on snapshot
- [CORE-1591] - MySQL DataType - TIME not persisting seconds (getting hours and minutes..so I've got that going for me.)
- [CORE-1592] - MySQL DataType - TEXT converted to LONGTEXT
- [CORE-1594] - PostgreSQL 'bigserial' type is automatically converted to 'bigint'
- [CORE-1595] - Schema version incompatibility is logged as INFO instead of WARN
- [CORE-1596] - Liquibase 3.0.5 will not create tables in dbo schema in SQL Server
- [CORE-1597] - ORA-01000: maximum open cursors exceeded
- [CORE-1600] - "Collation" and "Lateral" are not escaped in Postgres (new reserved words in v9.3)
- [CORE-1602] - DatabaseException in changesets that include date fields with default values
- [CORE-1603] - MySQL Datatype - BIGINT, INT, MEDIUMINT, SMALLINT, TINYINT all "shaving" off sizes
- [CORE-1606] - MySQL - TEXT vs. LONGTEXT for diffChangeLog presents CLOB
- [CORE-1607] - MSSQL java.sql.Types.TIMESTAMP should map to DateTime
- [CORE-1610] - MSSQL - NTEXT type being snapshot with MSSQL driver default size parameter.
- [CORE-1611] - Avoid reverse DNS lookup with getLocalHost().getHostName();
- [CORE-1612] - YAML/JSON changelogs not picking up "value" attribute on column configs
- [CORE-1614] - mysql case insensitive affects databasechangelog creation
- [CORE-1615] - Failed to drop default value in MSSQL
- [CORE-1616] - SQLFileChange uses too many file descriptors
- [CORE-1619] - MSSQL: preconditions treat object names in a case-sensitive way
- [CORE-1622] - Ant not respecting diffTypes=data
- [CORE-1623] - MSSQL: precondition primaryKeyExists doesn't work
- [CORE-1625] - H2 Blob Type support is incorrect
- [CORE-1626] - createIndex does not work for function based indexes anymore
- [CORE-1627] - Option 'diffTypes' does not accept type 'indexes'
- [CORE-1632] - It's impossible to setup Logger's log level with system property 'liquibase.defaultlogger.level'
- [CORE-1636] - Case sensitivity issue with tableExists precondition
- [CORE-1640] - foreignKeyExists precondition always failing
- [CORE-1641] - Add column with foreign key throws NPE
- [CORE-1644] - ValidationFailedException after update to 3.0.7
- [CORE-1646] - Exception when comparing two schemas
- [CORE-1647] - Mysql enum default values not quoted
- [CORE-1648] - Mysql columns with colons and other special chars are not quoted
- [CORE-1664] - MSSQL. "DATE" type doesn't exist for MSSQL 2005 and 2000.
- [CORE-1382] - Allow to create DATABASECHANGELOG* tables in another schema
- [CORE-1546] - Schema-Support on Informix
- [CORE-1577] - Oracle tinyint, smallint, int being created as number(38,0)
- [CORE-1604] - Minor maven pom cleanups
- [CORE-1635] - Generated changelog missing unique constraints should be output before foreign keys

Changes in version 3.0.7 (2013.10.24)

- Major Changes:
    Decreased memory usage, especially with large sql files
    Fixed SQLite support
    Improvements to data type handling, especially in MS SqlServer

- [CORE-1509] - Memory improvements for large sqlFile files
- [CORE-1533] - Performance improvements in dropAll
- [CORE-1247] - [Sqlite] bad syntax in create table statements with single autoincrement primary key
- [CORE-1519] - Allow relative file paths for valueClobFile and valueBlobFile inserts/updates.
- [CORE-1275] - LoadData insert statements do not escape column names containing an open paren
- [CORE-1312] - Error when creating changelog tables
- [CORE-1399] - IncludeAll Failing when running in WAR files
- [CORE-1440] - Invalid Reorg table statement gets generated on DB2
- [CORE-1504] - dbDoc should html-encode author names
- [CORE-1506] - updateSQL generates invalid SQL for oracle
- [CORE-1507] - dropAll fails with NullPointerException
- [CORE-1510] - Maven plugin fails to configure parameters within property file with trailing spaces, error message misleading
- [CORE-1511] - modifyDataType truncates enum values
- [CORE-1512] - Insert with valueClobFile fails with unicode encoding.
- [CORE-1515] - Liquibase MSSQL: Snapshot incorrectly injecting size for some datatypes
- [CORE-1516] - Liquibase MSSQL: Snapshot recording incorrect size for VARBINARY
- [CORE-1517] - Liquibase MSSQL: Autoincrement property of decimal datatype not supported
- [CORE-1518] - Liquibase MSSQL: Incorrect datatypes captured in the snapshot
- [CORE-1520] - Liquibase Snapshot: Default datetime is wrong
- [CORE-1521] - When generateChangeLog is run, objects do not always come back in a consistent order
- [CORE-1522] - PreparedStatement.setCharacterStream() not supported by Postgres JDBC driver.
- [CORE-1524] - Ant diff command running diffChangeLog
- [CORE-1525] - Liquibase MSSQL: Snapshot not capturing alter statements that add default values
- [CORE-1526] - Unicode string escaping in MSSQL
- [CORE-1530] - Column called VERSION is quoted in PostgreSQL
- [CORE-1531] - includeAll with relativeToChangeLogFile fails under certain conditions
- [CORE-1532] - NPE in ChangedIndexChangeGenerator
- [CORE-1534] - Single quotes in liquibase.bat causing issues

Changes in version 3.0.6 (2013.10.08)

- Major Changes:
     Split out CDI code to a separate jar
	 Remove primary key on DATABASECHANGELOG and increased column sizes
	 Case sensitivity fixes
	 General bug fixes

- [CORE-1485] - Extract CDI support into a separate module
- [CORE-602] - Increase the default size of the FILENAME column
- [CORE-1471] - Add support for Sybase IQ
- [CORE-1475] - Support entering password(s) interactively on the command line
- [CORE-1477] - Support overriding LockService changeLogWaitTime
- [CORE-1492] - DatabaseChangelog Description useless
- [CORE-1502] - CLONE - UpdateSQL needs to append a "/" to the end of createProcedure for Oracle
- [CORE-1088] - Derby fails to create databasechangelog tables
- [CORE-1093] - generateChangeLog fails on MSSQL with coalation CS on views named in lowerCase
- [CORE-1158] - Escaping of reserved keywords in HSQLDB
- [CORE-1170] - loadUpdateData sometimes needs / and sometimes not
- [CORE-1177] - Failure to write a change set to the DATABASECHANGELOG table still applies the change set
- [CORE-1325] - CDI injection does not work with openwebbeans
- [CORE-1343] - Include SQL file with relativeToChangelogFile doesn't work
- [CORE-1378] - Deploy fails on Glassfish
- [CORE-1409] - Package CDI support as a separate module
- [CORE-1436] - loadUpdateData does not escape apostrophes
- [CORE-1437] - Diff is case-sensitive on column names
- [CORE-1440] - Reorg Table gets called before table is created on DB2
- [CORE-1441] - Drop table with cascade does not work on MS SQL Server
- [CORE-1443] - Documentation for liquibase maven logging configuration needs update
- [CORE-1445] - Mysql Reserved Words Not quoted
- [CORE-1449] - Liquibase throws null pointer if included file does not exist
- [CORE-1464] - SQL changelog are not correctly handled (NPE)
- [CORE-1465] - GetViewDefinitionGeneratorMSSQL generates UPPER case view name
- [CORE-1469] - GenerateChangelog not working on Firebird
- [CORE-1470] - Use NUMERIC instead of NUMBER for Sybase ASE
- [CORE-1478] - MySQL keywords `key' not quoted as a column name
- [CORE-1479] - MySQL 5.5.27 fails to create DATABASECHANGELOG table (Liquibase support fully broken)
- [CORE-1480] - ChangedPrimaryKeyChangeGenerator missing name
- [CORE-1481] - Schema.toString NPE
- [CORE-1482] - Update fails with "Table DATABASECHANGELOGLOCK already exists"
- [CORE-1483] - Boolean values of "false" being incorrectly handled
- [CORE-1488] - Encoding issue with UpdateSQL
- [CORE-1490] - Oracle 10g: Changelog generation changes type NUMBER(*,0) to NUMBER(22)
- [CORE-1491] - Oracle 10g: changelog generation converts VARCHAR2(n CHAR) to VARCHAR2(n BYTE)
- [CORE-1497] - SQL SERVER: sysdiagram table is captured during generateChangeLog if system diagrams are enabled.
- [CORE-1499] - null appearing in liquibase maven output
- [CORE-1500] - Snapshots do not order objects alphabetically
- [CORE-1501] - Incorrect SQL generated for default column value in PostgreSQL for text columns
- [CORE-1448] - Throw a more helpful error message and continue on if snakeyaml isn't in the classpath
- [CORE-1472] - Support multi-tenant spring applications

Changes in version 3.0.5 (2013.09.24)
- Major Focus: Performance Improvements
- [CORE-1453] - Multi-column foreign keys not snapshotted correctly
- [CORE-845] - "DATE" data type is deployed as "SMALLDATETIME" in SQL 2008
- [CORE-859] - Nullable TIMESTAMP columns in MySQL are not nullable.
- [CORE-1257] - Oracle: generateChangeLog exports a column of type "NUMBER" as "NUMBER(0,-127)"
- [CORE-1288] - H2 (and other) support for BLOB and CLOB is incorrect
- [CORE-1338] - Using apostrophe in changeset's ID causes SQL error
- [CORE-1360] - Confirmation message of a custom change change is only printed if loglevel is debug
- [CORE-1364] - SQL Server incorrect INFORMATION_SCHEMA table case in native query
- [CORE-1365] - SQL Server: "Database 'dbo' does not exist" error
- [CORE-1401] - Unnecessary snapshot on liquibase update
- [CORE-1415] - Liquibase tables are not detected in oracle running in the SYSTEM schema
- [CORE-1426] - ORACLE: Check for existing tables is case sensitive
- [CORE-1429] - Random order of UniqueConstraint and ForeignKey drop statements
- [CORE-1459] - Maven updateSQL creates databasechangelog table, should only output SQL to do it
- [CORE-1462] - renameColumn with 'text' data type improperly trying to use 'clob' against MySql
- [CORE-1433] - Handle changes in column datatypes in diffChangeLog
- [CORE-1434] - Formatted Changelog format not parsing UTF8 .sql files with BOM

Changes in version 3.0.4 (2013.09.06)
- [CORE-548] - GenerateChangeLog generates invalid XML/SQL for mysql tables with autoincrement and compound PKs
- [CORE-1423] - NPE in ForeignKeyComparator

Changes in version 3.0.3 (2013.08.29)
- [CORE-1241] - Remove schema name from SQL generated when running updateSQL
- [CORE-1412] - UpdateSQL should write to stdout not stderr
- [CORE-844] - Integer with range limitations handled incorrectly on Oracle
- [CORE-1313] - Unique constraint name is ignored when adding a column
- [CORE-1316] - Column Type COMPUTED in loadData is not implemented correctly (shoud pass a DB Function instead of String to DB).
- [CORE-1327] - renameColumn and renameTable with Sybase
- [CORE-1329] - GenerateChangeLog on MSSQL exports a SMALLINT(5) - smallint does not allow precision
- [CORE-1336] - AutoIncrement not working with some types
- [CORE-1351] - PostgreSql 9 doesnt have datetime data type
- [CORE-1353] - AutoIncrement not working for numeric types
- [CORE-1354] - Sequences get dropped too early
- [CORE-1356] - Unnecessary size specifications on MEDIUMTEXT, TINYTEXT, MEDIUMBLOB, TINYBLOB from generateChangeLog
- [CORE-1358] - LiquiBase 3.0.2 writes '3.0.0-SNP' (Snapshot) to 'LIQUIBASE' column instead of '3.0.2'
- [CORE-1362] - Informix fails when schema is not equal catalog
- [CORE-1363] - ForeignKey NPE during dbDoc generation
- [CORE-1364] - SQL Server incorrect INFORMATION_SCHEMA table case in native query
- [CORE-1366] - Oracle database dbDoc generation performance issues
- [CORE-1367] - updateSQL generates an empty file using standard output in 3 version
- [CORE-1369] - Whitespace in author in SQL formatted changelog causes that migration to be silently skipped
- [CORE-1370] - Oracle doesnt have DATETIME datatype
- [CORE-1371] - MySQL syntax error is thrown if schema name contains hyphens
- [CORE-1372] - Version Command Line Argument Incorrect
- [CORE-1373] - dropAll attempts to drop objects in other schemas under Oracle
- [CORE-1375] - "group" is not included as a reserved word
- [CORE-1377] - liquibase version says 3.0.0-SNP
- [CORE-1380] - ^M present in liquibase unix running file (from jar on maven repo)
- - - - - [CORE-1381] - DropAll: Not working with MsSql
- - [CORE-1383] - Error attempting to re-create databasechangeloglock on second liquibase run if running in Oracle under SYSTEM user
- [CORE-1387] - dropAll fails with oracle since version 3.0.2
- [CORE-1388] - MSSQLServer: 'REAL' dataype is returned with unnecessary size modifier during generateChangeLog
- [CORE-1389] - AddLookupTable fails when using QUOTE_ALL_OBJECTS
- [CORE-1394] - additionalInformation lost in DataTypeFactory.fromDescription()
- [CORE-1395] - Bug in MSSQLDatabase.getViewDefinition()
- [CORE-1396] - Liquibase is loosing indices on foreign key columns
- [CORE-1397] - Informix DB: Size of VARCHAR more than 255
- [CORE-1398] - Missing or unexpected unique constraint not found on Postgres
- [CORE-1402] - Custom preconditions not passing XML validation
- [CORE-1403] - Default schema not correct when using <tableExists>
- [CORE-1405] - SpringLiquibase not closing connection if rollback exception
- [CORE-1406] - MySQL loadUpdateData using literal values for update
- [CORE-1408] - NVarcharType on Derby Fails
- [CORE-1413] - NPE in changeSetExecuted precondition in changelog-level preconditions
- [CORE-1414] - Improve error handling in empty databasechangeloglock tables
- [CORE-1417] - generateChangeLog failed
- [CORE-1418] - Foreign Key changes not detected in snapshot process

Changes in version 3.0.2 (2013.07.11)
- [CORE-628] - Specify the output encoding that liquibase should use to output data in Maven
- [CORE-169] - Oracle TIMESTAMPS not exported correctly
- [CORE-1301] - defaultschemaName not used
- [CORE-1315] - Database Objects do not get dropped on DB2
- [CORE-1317] - Not all FK Constraints get dropped on Oracle
- [CORE-1318] - Not all FK Constraints get dropped on SQL Server
- [CORE-1328] - includeAll trying to process invalid file types, should only process valid change log types
- [CORE-1331] - If logicalFilePath attribute is set on databaseChangeLog, I am unable to use relativeToChangelogFile="true" on
- [CORE-1332] - includeAll of changelog files throws duplicate identifiers error
- [CORE-1335] - Data export support broken in 3.0
- [CORE-1336] - AutoIncrement not working with some types
- [CORE-1337] - Problem with changeset defined as runAlways="true"
- [CORE-1339] - NPE on update if default ServiceLocator.packagesToScan is used
- [CORE-1340] - indexExists Changesets throwing PreconditionErrorException instead of PreconditionFailedException
- [CORE-1341] - foreignKeyConstraintExists precondition broken
- [CORE-1347] - dropAll function work incorrectly when table has 2 foreign keys

Changes in version 3.0.1 (2013.06.25)
- [CORE-898] - Custom precondition xsd failing
- [CORE-1171] - Maven plugin displaying password in plain text
- [CORE-1320] - Cannot include YAML file
- [CORE-1323] - Conversion from char to SMALLINT is unsupported
- [CORE-1324] - Formatted SQL does not support contexts such as "some-context" or "some/context"

Changes in version 3.0.0 (2013.06.17)
- Dropped Java 1.5 support
- Major changes in diff and snapshot log
- Support for "catalogs" in addition to schemas
- Separated "diff" and "snapshot" logic for better modularity
- Extension support for LockService
- Extension support for defining new DataTypes
- Extension support for defining new snapshot DatabaseObjects
- Extension support for defining new Snapshot log
- Extension support for how to compare DatabaseObjects
- Better extension support for changelog generation
- More object types are snapshotted
- Changes can provide metadata helpful for IDE and other integrations
- Added ability for objects to control how they are serialized via the LiquibaseSerializable interface
- Can define tablespace for liquibase tables
- Performance improvements
- Ability to specify sequences to read values from on <insert>
- Improve OSGi support
- Support preconditions in formatted SQL
- Maven supports generateChangeLog
- Better support for case sensitive databases
- API cleanup
- Ability to SKIP columns in a CSV file
- Improved Informix support
- Support JDBC escape syntax in SQL
- Added futureRollbackCountSQL
- Support ${} params in formatted SQL
- Many bug fixes

Change in version 2.0.5 (2012.05.01) https://liquibase.jira.com/secure/ReleaseNote.jspa?projectId=10020&version=10360
----------------------
- Reverted load blog/clob data from files feature
- Fixed linux distribution script
- Fixed command line output back to stdout

Change in version 2.0.4 (2012.04.18) https://liquibase.jira.com/secure/ReleaseNote.jspa?projectId=10020&version=10160
----------------------
- Support ${} params in included sql files
- Ability to load blog/clob data from files
- Bug Fixes


Change in version 2.0.2 (2011.09.15)
----------------------
- dropFirst parameter on SpringLiquibase bean
- Bug Fixes

Change in version 2.0.0 (2010.12.19)
----------------------
- Major change to codebase, focusing on extension/integration APIs

Changes in version 1.9.3 (2009.4.3)
----------------------
- Fixed index column nested tags in generated XML

Changes in version 1.9.2 (2009.4.6)
----------------------
- Fix for includeAll on windows
- Other bug fixes

Changes in version 1.9.1 (2009.2.20)
----------------------
- Escape hsql tables/columns if they are a keyword
- opensvn is included in our jar, not a dependency
- Bug in runInTransaction
- Additional bug fixes
- Grails 1.1-SNAPSHOT support

Changes in version 1.9.0 (2009.1.7)
----------------------
- Paths in <include> can be relative to changelog
- Sybase Adaptive SQL Anywhere support
- Better Derby support (drop column, rename column)
- <modifySql> support
- <stop> change
- <includeAll> support
- runInTransaction attribute for changeSet
- Stronger validation in .xsd
- Bug fixes

Changes in version 1.8.1 (2008.10.1)
----------------------
- Bug fixes

Changes in version 1.8.0 (2008.09.17)
----------------------
- Added SQLite support
- Bug fixes
- Added dropAllForeignKeyConstraints change
- Added onFail and onError precondition failure controls
- Auto-increment specifying on a non-auto-increment table does not fail but simply ignores flag
- Can control onDelete and onUpdate behavior for FK constraints
- Added ability to specify that an index should be unique
- Additional validation step checks for required attributes at run time
- Improved ordering of generated scripts with diff
- Improved command line migrator return codes
- Context checking is case insensitive
- Can specify end delimiter in <sql> change
- Added several new precondition checks
- Custom preconditions can be passed parameters

Changes in version 1.7.0 (2008.06.25)
----------------------
- Added loadData change
- Added support for changelog paramters
- Allow preconditions in <changeSet>
- Can export data with generateChangeLog
- Added markNextChangeSetRan command
- Added validCheckSum tag to changeSet
- Can use change tags in <rollback>
- Can reference previous changeSets in <rollback>
- Allow custom preconditions
- RowMapper interface is now public
- Misc bug fixes

Changes in version 1.6.1 (2008.04.23)
----------------------
- Maven/Grails/IntlliJ Plugin relase of 1.6.x
- Many misc bug fixes

Changes in version 1.6.0 (2008.03.27)
----------------------
- Added Hibernate diff support
- Fix to MD5Sum generation that requires updating all rows in databasechangelog table
- Added tagDatabase tag
- Added primaryKeyName attribute
- Supports multiple rollback tags per changeSet
- Column remarks stored in generated changelogs
- executeCommand output logged to logging system
- Many misc bug fixes

Changes in version 1.5.3 (2008.02.28)
----------------------
- Recompiled to work with Java 1.5

Changes in version 1.5.2 (2008.02.07)
----------------------
- Fixed bug with runOnChange and MD5sum check
- Handles generating changelog for tables with composite primary keys
- Other minor bug fixes

Changes in version 1.5.1 (2008.02.01)
----------------------
- Fixed failOnError logic
- Improved serial column detection in Postgres
- Rollback connections before close for DB2
- Other minor bug fixes

Changes in version 1.5.0 (2008.01.29)
----------------------
- Major Refactoring of XML parser and Migrator/Liquibase class
- Database table comments saved to generated change log
- ReplaceIfExists attribute added to createView
- Setting value/valueNumeric/valueBoolean/valueDate on addColumn will update all existing rows with the given value
- Added defaultSchemaName parameter for setting default schema
- Changelog file comparisons are case-insensitive on windows
- Output warning of old schema version
- Added updateCount and updateCountSQL commands
- Changed "migrate" command to "update".  Note: "migrate" is now an alias for "update"
- Added comments tag to generated SQL output
- Custom Database implementations can be specified with the databaseClassName parameter
- Created changeLogSync command
- Rollback commands can specify contexts
- createTable can specify unique constraint name
- XSDs are not pulled from network
- Handles Postgres datatypes better
- added <update> change
- added <delete> change
- Additional and enhanced Ant tasks
- Changed database.migrator.should.run system property to liquibase.should.run
- Moved liquibase.servlet.MigratorStatusServlet to liquibase.servlet.LiquibaseStatusServlet
- Moved liquibase.servlet.ServletMigrator to liquibase.servlet.LiquibaseServletListener
- Moved liquibase.spring.SpringMigrator to liquibase.spring.SpringLiquibase
- Moved liquibase.commandline.CommandLineMigrator to liquibase.commandline.Main
- Renamed checked servlet listener parameters
- Other bug fixes

Changes in version 1.4.1 (2007.11.30)
----------------------
- Bug fixes

Changes in version 1.4.0 (2007.11.19)
----------------------
- IntelliJ Plug-in Support
- Added support for specifying schemas in change log
- MaxDB/SAPDB Support
- Refactored Code
- Can specify data types as java.sql.Types.*
- Support for composite foreign keys
- Improved Maven support
- Bug Fixes

Changes in version 1.3.2 (2007.10.8)
----------------------
- Grails support
- Firebird support

Changes in version 1.3.1 (2007.10.2)
----------------------
- Bug fix for createStoredProcedure in Oracle

Changes in version 1.3.0 (2007.9.27)
----------------------
- Added tablespace support to createTable, createIndex, addPrimaryKey, and addUniqueConstraint
- Restored Java 6 Support
- Added defaultCascade attribute to addForeignKeyConstraint
- Can have multiple comma-separated contexts per change set
- Created <custom> change
- Added sqlCheck precondition
- Database Diff checks column types and nullability
- DiffChangeLog will write to a file specified with the --changeLog flag
- Added dbdoc documentation generator
- Database Diff checks views
- Package re-organization
- Added createProcedure change
- Added <executeCommand> change
- Table names are enclosed in []'s on MS SQL
- Added Spring migrator
- Misc bug fixes

Changes in version 1.2.1 (2007.8.31)
----------------------
- Include sequences in generateChangeLog
- Fixed ordering of statements default and null clauses based on database

Changes in version 1.2 (2007.8.28)
----------------------
- Added support for H2 database
- Added support for InterSystems Cache` database
- Support for sqlfile change
- Improved error messages
- Sybase fixes
- Handle --defaultsFile correctly
- Handle command line parameters correctly on Windows systems
- <sql> tag can contain a <comment> tag
- Change log file references can be absolute
- SQL can be ; or 'go' delimited
- Added clearCheckSums command
- Bug fixes

Changes in version 1.1.1 (2007.7.24)
-----------------------------------
- Bug fixes related to the diff tool

Changes in version 1.1 (2007.7.23)
-----------------------------------
- Support for additional databases: DB2, Derby, Sybase (not fully tested), and HSQL
- Support for "unsupported" databases
- Database Diff Tool
- Database Creation Script Generator
- new DBMS attribute on change set tag that allows you to specify what databases to run the change set against
- "verify" command that checks for change log problems without attempting to execute any
- "status" command that shows information on unrun change sets
- Handle date/time and numeric values better on inserts and setting default values
- Bug Fixes

Changes in version 1.0.1 (2007.7.07)
------------------------------------
- Do not quote "null" default values
- Documentation fixes

Changes in version 1.0 (2007.6.25)
------------------------------------
- Minor Bug Fixes

Changes in version 1.0 RC2 (2007.6.19)
------------------------------------
- Improved documentation
- Bug fixes
- Changes to exception throwing

Changes in version 1.0 RC1 (2007.6.8)
------------------------------------
- Added batch/shell scripts for command line migrator
- Improved documentation
- Bug fixes
- Blog started at http://blog.liquibase.org

Changes in version 0.9.1 (2007.5.23)
------------------------------------
- Bug fixes

Changes in version 0.9.0 (2007.5.14)
------------------------------------
- Rollback support
- Initial Maven support
- Performance improvements
- Can have a logical file and path for changelogs
- New Database Refactorings:
  - Add View
  - Rename View
  - Drop View
  - Merge Columns
  - Add Foreign-Key Constraint
  - Drop Foreign-Key Constraint
  - Add Lookup Table
  - Add Primary Key
  - Add Auto-Increment
  - Add Default Value
  - Drop Default Value
  - Drop Primary Key
  - Add Unique Constraint
  - Drop Unique Constraint
- Code refactorings

Changes in version 0.8.2 (2007.4.30)
-------------------------------------
- Bug fixes

Changes in version 0.8.1 (2007.4.25)
-------------------------------------
- Prompting for non-local database is now false by default
- Ant non-local database prompt attribute changed to promptOnNonLocalDatabase from promptOnNonDevDatabase
- Bug Fixes


Changes in version 0.8.0 (2007.4.22)
-------------------------------------
- Changelog Pre-conditions
- Execution contexts
- failOnError tag for changeSets
- addNotNullConstraint / dropNotNullConstraint
- allow "comment" tags
- Improved documentation
- Completed conversion to SourceForge
- Improved automated tests


Changes in version 0.7.0 (2007.3.16)
-------------------------------------
- Changed MD5Sum logic.  !! Need to run 'update databasechangelog set md5sum=null' !!
- Added support for autoIncrement columns in createTableChange
- Switched to Liquibase name, including all package structures
- Moved code to SourceForge


Changes in version 0.6.3 (2007.1.10)
--------------------------------------
- Fixed bug in create table refactoring where it ignored constraint clauses

Changes in version 0.6.2 (2006.12.19)
--------------------------------------
- Fixed missing non-upper cased insert statement

Changes in version 0.6.1 (2006.12.12)
--------------------------------------
- Classpath for command line migrator can now include .ear files
- Can specify a "database.migrator.should.run" system property that blocks the migrator from running if set to "false"
- Added a liquibase.migrator.servlet.MigratorStatusServlet servlet that can used to see the migrator logs
- Added a MIGRATOR_FAIL_ON_ERROR web.xml context parameter that controls if an exception should be raised if an exception is thrown, or if the listener should just return.  Throws an exception by default
- All database SQL is upper case.
- Fixed issues with postgres schemas and getTables() call
- Added retroweaver build for 1.4 JVMs
- Misc. Bug fixes

Changes in version 0.6 (2006.11.10)
--------------------------------------
- Added change log locking support, so multiple migrators running at the same time won't interfere with eachother
- Fixed bug with command line parsing and URLs with '='s in them
- Misc bug fixes

Changes in version 0.5.1 (2006.10.18)
--------------------------------------
- Bugfixes related to running ant task

Changes in version 0.5 (2006.10.16)
--------------------------------------
- LGPL Licence
- Oracle uses Timestamp for datetime columns
- Command line migrator can be run against WAR and EAR files
- Command line migrator can be run via java -jar
- ChangeSets can be marked as "runAlways" and "runOnChange"
- ServletListener can be configured to only run on certain hostnames
- Removed all dependencies
- Improved MD5Sum generation.  To update your MD5Sums, run "update databasechangelog set md5sum=null"
- MySQL Support
- Misc bugfixes
- Improved Documentation
