I think it still comes down to proper software engineering. If you have good interfaces, abstractions, and automated tests, you can move to new systems.
I've seen teams struggle to move from DB version x to x+1, taking many many months, but it's because they have no idea if it works after they upgrade.
On the flip side you have people like Snowflake who are building a database that runs across multiple clouds. From the outside it appears both portable and optimized for each platform.
Thoughtful software engineering, with the right abstractions and test automation are a big deal...