The author of a Neo4j extension for Liquibase aims to provide graph-specific refactorings, including mergeNodes, which fuses a sequence of nodes together. The implementation poses several challenges, such as repeated node matching and dynamic property writes in Cypher. To overcome these hurdles, the author relies on retrieving node IDs in a user-defined order and using them to match nodes for subsequent queries. The final API is designed with three merge policy options: keep first, keep last, or combine all values. The implementation demonstrates the use of Cypher's dynamic property reads and concise set clause overwrites. Despite its challenges, the author believes that graph refactoring can be achieved in a way that scales well for Neo4j deployments.