Like any complex software, SDN programs must be updated periodically, whether to migrate to a new controller platform, repair bugs, or address performance issues. Nowadays, SDN operators typically perform such upgrades by stopping the old controller and starting the new one - an approach that wipes out all installed flow table entries and causes substantial disruption including losing packets, increasing latency, and even compromising correctness. This paper presents HOTSWAP, a system for upgrading SDN controllers in a disruption-free and correct manner. HOTSWAP is a hypervisor (sitting between the switches and the controller) that maintains a history of network events. To upgrade from an old controller to a new one, HOTSWAP bootstraps the new controller (by replaying the history) and monitors its output (to determine which parts of the network state may be reused with the new controller). To ensure good performance, HOTSWAP filters the history using queries specified by programmers. We describe our design and preliminary implementation of HOTSWAP, and present experimental results demonstrating its effectiveness for managing upgrades to third-party controller programs.