I have a rMBP running OS X 10.8 Mountain Lion.
I normally use the display at a 1680x1050. Is there a way to have the display automatically change resolution to the default retina when on battery, and revert to 1680x1050 when power is reconnected?
Your best bet would be to use ControlPlane (free) to detect when the power source has switched, and then fire off a shell script to change the resolution.
Then it's just a simple matter of setting ControlPlane to run
screenresolution set 1440x900 or
1650x1050 as appropriate. Note that you may want to experiment with the
screenresolution get command first to double check how it handles retina resolutions.