When you perform the 'Open database' action in the GUI, or the DbOpen() call in the command line, the application connects to your database and reads information about database objects: definitions of tables, views, stored procedures, and so on.
After completing the reading process, if the application has the other-side database loaded, it re-compares the lists of database objects. After the objects are merged, the application also connects to the database, re-reads the objects, and re-compares them with the other-side database.