Structure-Preserving Methods For Molecular Response Calculations