01 - Preheat oven to 350°F. Line a 9x9 inch baking pan with parchment paper, allowing an overhang on opposite sides for easy removal later.
02 - Combine graham cracker crumbs, melted butter, sugar, and salt in a medium bowl. Mix until evenly moistened. Press mixture firmly into the bottom of the prepared pan. Bake for 10 minutes until lightly golden. Set aside to cool slightly.
03 - Beat cream cheese in a large bowl until completely smooth. Add sour cream and sugar, mixing until creamy and well-combined. Beat in eggs one at a time, ensuring each is fully incorporated before adding the next. Blend in vanilla extract and flour, mixing just until combined. Avoid overmixing to prevent cracks.
04 - Pour cheesecake filling over the pre-baked crust, spreading evenly. Bake for 35 to 40 minutes until edges are set and the center has a slight jiggle when gently shaken. Cool completely on a wire rack, then refrigerate for at least 2 hours until fully chilled.
05 - Combine sugar and water in a medium saucepan over medium heat. Swirl the pan occasionally as the sugar dissolves and begins to caramelize—do not stir with a utensil. Continue cooking until the mixture turns a deep amber color. Remove from heat immediately. Carefully whisk in the cubed butter until melted, then slowly pour in the heavy cream while whisking continuously. Add sea salt if making salted caramel.
06 - Let caramel cool for 5 to 10 minutes until slightly thickened but still pourable. Spread caramel evenly over the chilled cheesecake layer. Refrigerate for at least 1 additional hour until the caramel is set.
07 - Using the parchment paper overhang, lift the cheesecake bars from the pan. Cut into 16 equal squares. Serve chilled or bring to room temperature for 15 minutes before serving.