Hallo :-)
We're running SQLcl 23.1 against Oracle DB 21c Standard Edition 2.
We generate (sql lb generate-object) the XML and SQL from tables in the DEV database (with INMEMORY DISABLED, because it's not supported on SE2), which works fine and the changeset generated looks great.
When we deploy (sql lb deploy) to the PREPROD database (also 21c SE2 - exact same patches) then SQLcl tries to enable INMEMORY for some weird reason, and of it fails because SE2 does support INMEMORY).
There is an interesting observation here, in that the problem only appears with tables where “NO INMEMORY” has been added to the end of the CREATE TABLE statement when the table was created. On tables where this was not done, this problem does not occur.
The question is: why does SQLcl/Liquibase try to enable INMEMORY on the target DB?
Oracle Database 21c Standard Edition 2 Release 21.0.0.0.0 - Production
Version 21.9.0.0.0
--Starting Liquibase at 11:41:52 (version 4.17.0 #0 built at 2022-11-02 21:48+0000)
-- Loaded 112 change(s)
Running Changeset: sequence/policy_info_instance_id_sequence.xml::e68dbfacca793e61035709147ede25110328b0d3::(IFRS17_BRONZE)-Generated
Sequence "IFRS17_BRONZE"."POLICY_INFO_INSTANCE_ID" created.
Running Changeset: table/fdw_policy_info_table.xml::bbcf3e80331a1ee84d07e7c173edbdfff4574e93::(IFRS17_BRONZE)-Generated
Error starting at line : 1 in command -
ALTER TABLE "IFRS17_BRONZE"."FDW_POLICY_INFO" INMEMORY MEMCOMPRESS
Error report -
ORA-00922: missing or invalid option
00922. 00000 - "missing or invalid option"
*Cause:
*Action:
Rolling back changeset.
Rollback completed successfully.

From the XML changeset definition:
<INMEMORY>
<STATE>DISABLE</STATE>
</INMEMORY>