[ Arduino UNO ] Button state change

The pin 2 is always high but can be read from and when the button is pushed it reads LOW

You mean this pin?

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

The one you defined as an INPUT pin?

My comment was about using that pin to supply power to the switch. In order to do that, the pin needs to be defined as an OUTPUT pin, and set HIGH.

Reading from an OUTPUT pin will return HIGH or LOW, depending on what the last digitalWrite() set the pin to.