Liquibase not doing any updates on SQL Server databse but log says everything is successful

I am trying to use Liquibase to deploy SQL DML and DDL to SQL server database. I am invoking liquibase through maven. the below output from maven shows that the changeset is applied. But when i connect to SQL server Database from SSMS I don’t see the DATABASECHANGELOG or DATABASECHANGELOGLOCK table in the DB. The Id I am using only has access to one DB dbname. So I am not sure what’s going on.
I checked with my DB admin and enabled trace on DB. Liquibase is trying to run a select statement on the DATABASECHANGELOG without creating it and throwing a object not found error. I tried running liquibase against new database and see the same issue

jdbc driver mssql-jdbc version 8.4.1.jre8 liquibase version 4.2.2

I posted this on stack overflow too here is the link
stackoverflow

[INFO] Output SQL Migration File: /opt/jenkins/7cb92e15/workspace/Clinical/database/sql/target/liquibase/migrate.sql [INFO] Executing on Database: jdbc:sqlserver://Sername\DEV;databasename=dbname [INFO] Successfully acquired change log lock [INFO] Configured classpath location file:/opt/jenkins/7cb92e15/workspace/Clinical/database/sql/target/classes does not exist [INFO] Configured classpath location file:/opt/jenkins/7cb92e15/workspace/Clinical/database/sql/target/classes does not exist [INFO] Configured classpath location file:/opt/jenkins/7cb92e15/workspace/Clinical/database/sql/target/test-classes does not exist [INFO] Configured classpath location file:/opt/jenkins/7cb92e15/workspace/Clinical/database/sql/target/classes does not exist [INFO] Creating database history table with name: DATABASECHANGELOG [INFO] Custom SQL executed [INFO] ChangeSet test/test1.sql::raw::includeAll ran successfully in 94ms [INFO] ChangeSet ./liquibase.xml::1::dev2 ran successfully in 93ms [INFO] Successfully released change log lock [INFO]

Hi @srinu ,

Sorry you are having issues with your deployment. May I clarify, you say:

Liquibase uses tracking tables on the database server to track what changesets ran, so you will need an ID that can access, and create if needed that table. This is a Liquibase requirement.

I am also facing a similar issue after taking liquibase-core version 4.23.0. The database is SQL Server and I am using the sa account which has all the privileges to create everything. The one weird observation is that the change logs are parsed more than once

I would recommend adding the sql-log-level=INFO parameter to your execution. This will show all of the sql executed by Liquibase, including to the tracking tables.

Update: If we use liquibaseDb.update(new Contexts(), new LabelExpression()); then everything works but this has been deprecated. When we use the recommended method liquibaseDb.update(new Contexts(), new LabelExpression(), new StringWriter()); the behavior is reproduced