C# Reverting GameObject to Original

Hi everyone, I have script that changes someGameObject into SwitchOut. Now I want to make it so I can change it back to what it was. I’ve created preservedGameObject to preserve someGameObject. Now when I run my script and click change preservedGameObject says it’s missing a gameobject. I assume that’s because I destroyed someGameObject. Is there a way I can change it back to what it was?

using UnityEngine;
using System.Collections;

public class SomeScript : MonoBehaviour {
public string[] someStringArray;
public string someString;
public GameObject switchOut;
public GameObject someGameObject;
public GameObject preservedGameObject;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void OnGUI () {
	if(GUILayout.Button("Change", GUILayout.Width(75), GUILayout.Height(25))){
	Vector3 position = someGameObject.transform.position;
	Quaternion rotation = someGameObject.transform.rotation;
	preservedGameObject = someGameObject.gameObject;
	Destroy(someGameObject);
	someGameObject = Instantiate (switchOut, position, rotation) as GameObject;
		}
	if(GUILayout.Button("Revert", GUILayout.Width(75), GUILayout.Height(25))){
	Vector3 position = someGameObject.transform.position;
	Quaternion rotation = someGameObject.transform.rotation;
	Destroy(someGameObject);
	someGameObject = Instantiate (preservedGameObject, position, rotation) as GameObject;
		}
	}
}

You likely want to simply set the preserved game object to inactive. When you want to use it again, just set it to active and update its position and rotation if necessary.

gameObject.SetActive(< true or false >);